Testing environments is a big one as others have mentioned.
- browser testing (ie, safari, etc,...)
- clean testing environment
- easy to have multiple configurations
- accessibility testing (screen readers and the like)
I have a VM strictly for profiling and debugging my code which has kcachegrind already setup, along with selenium, xdebug and a few other tools configured to easily profile and debug my code. Yes some may say this is what a development environment already would be but personally I like having a VM on my desktop dedicated to this sort of task.
Also, regarding the slowness in a VM:
Things are slower in a VM because of the overhead requires to "virtualize" the environment. However, the VM is becoming closer and closer to the hypervisor which lessens the overhead required for the VM.