Common inexpensive server machines are very powerful today. Many cores, many GB of RAM. It becomes a management and flexibility nightmare to host all the desired servers on a single operating system.
For example, group A needs a web app hosted in a Tomcat environment; B needs a a JBoss based app; C and D need two different Django apps; E and F need Rails apps.. All of those apps together still only need 10% of the resources of the server. So, you can also host 20 other services on it. Good luck managing the dependencies across all the apps. Try upgrading libraries used by multiple servers. You're stuck with the lowest common denominator. Now add in the fact that group J and K want an app supported in Windows Server 2003, and L and M want Windows Server 2012.
In a VM environment, you can isolate each server into its own OS, with its own minimal set of needed libraries, and you need only manage and test how it works with the single hosted app. You can also bolt on more resources by throwing another server in the cluster and distributing the load.
TL;DR: Servers today are really powerful. You can be very resource inefficient to gain a ton of operational efficiency.