Expensive.
Load balancing VMs across your server estate is something that occupies a lot more time that I would have thought when I started using virtualisation. Similarly, moving VMs from node to node takes quite a bit of time, depending on configuration. (Admittedly, they are ESXi nodes with local storage, and no management software.)
One thing I have learned now that I am three years into production use of virtualisation, (including a full VDI deployment,) is that Virtualisation is still for the Big Boys with the Big Toys. The more I work with it though, the more I realise just how much easier this would all be if we could only afford all that stupendously expensive management software. Without the right tools, the net result can just as easily be “more stuff to deal with.” We’ve managed to overcome this with some very strict procedures and a *lot* of scripts, but someone just starting out would not necessarily see a reduction in maintenance overhead. I think that if you have the real management tools to accompany virtualisation it can be a phenomenal time saver.
Sadly, the reality of virtualisation is that in order to extract real benefits you must know an awful lot about it going in. You have to plan your network and your disaster recovery procedures around it, and you absolutely must test everything extensively. Smaller shops simply don’t have access to these kinds of resources, and even medium-sized outfits struggle to realise any benefits.
The barrier to entry on production virtualisation deployments really is the planning and management overhead, and it is way too high for any but the most dedicated, or the well-heeled.
(Or in cases like my own, the desperate. Not enough space or cooling to have everything be physical servers. Not enough money to build a real datacenter, not enough money to afford management tools either. You learn an awful lot about virtualisation through trial-and-error, as well as coming up with your own very extensive set of “best practice” documentation for every conceivable issue.)