I don't deal with vSphere SDK myself.
but by looking into class and method you are using, I am guessing following.
VMCreate.run() method
this is probably to create a new VM from scratch, obviously will not have OS (or VMDK depends upon how you are creating it) at all.
VMClone.run() method
since above is to clone an Existing VM, it will pickup entire VM along with it's VMDKs and going through a full clone operation. Amount of time this operation takes depends upon Size of VM (VMDKs) and storage system in place.
====== Updates =======
just went though the documentation, and yes
VMCreate is to create a new VM from scratch as it's explained on following link, so when you power on this VM, it will report that no OS found.
VMCreate (VMware vSphere Web Services SDK JAXWS Java Samples Documentation)
While VMClone class, I was not able to find much about it, may be I didn't spend much time searching.