That doesn't mean that the issue is with virtualisation. Of course, neither does it mean that it is not.
VMware ESXi can, by and large, if configured correctly, pass just about every CPU function available through to the VM. It is possible that there is a configuration error (or intentional choice made in configuration) which is preventing Docker from seeing what it wants to see in a VM - if there's something it needs, Docker should have documentation on it.
There's data floating around on it too: http://www.opvizor.com/docker-performance-on-top-of-vmware-vsphere/
And vSphere 6.5 introduces containerisation natively within the hypervisor, effectively allowing Docker to run natively on top of the hypervisor instead of within a Linux VM: https://blogs.vmware.com/vsphere/2016/12/whats-new-in-vsphere-6-5-vsphere-integrated-containers.html