It depends on what you want to do with Ubuntu. For casual programming and learning any of these will work on a decent configuration. For machine learning and the likes you are better with a dual boot, or a cheap virtual host provider.
For general learning, I’d personally go with Hyper-V as it’s a type-1 hypervisor and would have much lower latencies compared to VMWare or VirtualBox. It comes along with Windows 10 and creating a VM is easy. You will need some extra configurations to get started with features like fullscreen guest OS, but Hyper-V is more mature now and there is plenty of documentation available.