If you use sparse files for storage, then an SSD is very helpful. If you fully preallocate the storage, it isn't very important at all. 90+% of native performance is very possible, for non-GUI applications.

Windows as a VM host has some issues, but performance can be tuned to get reasonable, feels-like-native performance for non-GUI programs.

Saw a trick for hyper-v VMs. Don't use auto-login and disabled both 2D and 3D accel.

For virtualbox, there are multiple guides for tuning the virtual machines for performance. "vbox performance improvements" will find them. The general rules apply to all hypervisors. VMs work fine with office programs and server stuff without too much difficulty. Good performance for heavy GUI programs is harder. https://askubuntu.com/questions/1903...rtualbox-guest has details.