The parent has no GUI. It produces a set of data for the child. The fork causes the child to get a snapshot of the data. The child displays the data graphically. If the child were to exec() it would lose the data snapshot.
But my point is while there are various UNIX emulation layer available for windows, even one form MS which is POSIX certified, this does not make Windows a UNIX platform. The situation is increasingly similar on OS X.