Yes, it's more complicated.
While the field rates of all three (CGA, EGA and VGA) are approximately the same (60 Hz, give or take), each line is scanned at very different rates. CGA, for example, has a horizontal line scan rate of about 15.750 KHz (262.5 lines). An EGA (depending on setting) has a horizontal scan rate of about 21KHz, giving 350 lines) and VGA has a horizontal scan rate of 31.5KHz, giving about 525 lines.
So, to convert CGA to VGA, ignoring the D-A aspect for now, you'd need to suck up a line of horizontal data (at 15.750KHz), then output it twice at 31.5KHz--you need some memory. D-A conversion is less problematic, since CGA at best can show only 16 colors. You could probably get decent results with a simple R-2R "ladder" network.
You get the idea, I'm sure.