Personally, I think dual boot and VM are entirely different animal.
In dual boot, you are running the exact target system without any layers in between the OS and the hardware. A dual-booted OS should have absolutely no difference with the uni-booted counter part.
Whereas, a VM is an application on your physical machine to emulate a different machine. The VM application creates and manages this pretend machine to run another OS on this machine. Anything your VM residing "client" OS needs, it asks the pretend machine that is your application and your application in turn gives it to your VM residing "client" OS. So, your VM application is the added layer, the middle man. A well designed/implemented VM of course will have no ill side effect for its clients and the client doesn't need to know it is running on a pretend machine. But we here all know that nothing is perfect, so some side effect will exist - at the very least, it will be slower. You client OS is but one of the many other applications that your host machine may be running.
In that manner, I don't think they are even choices on the same par. One merely allow you to select what to start: start A or start B. The other is A pretending to be B, or pretending to be C, while at the same time still doing whatever A is doing.
That said, from what I recall reading, almost all Intel CPU these days use some form of micro-code. So, the CPU we see is really itself a virtual machine... Just like people. You never know if they are for real...