If your databases have many concurrent sessions and/or queries that touch millions of records, would you give up process threading on 8-processor machine to go to a VM where your SQL Server gets one processor or maybe two? Isn't one of the most basic things to learn about SQL Server is the capability of using all processors for one query?
I have administered "shared servers" for a Fortune 500 company-- that is, many unrelated databases are created on one physical SQL Server; and the server administrator monitors performance to keep the machine at its optimal load of databases/users. The only problem with "shared server" is applications that include code to create SQL Server logins -- "just use the sa account." Aaaargh! Too much of my job was explaining to application developers they had to pay attention to the difference between server roles and database roles. I say "shared servers" is the way to go-- with a good SQ: Server administrator who pays attention to security as well as performance.
I have horror stories to tell about SQL Server on virtual machines administered by network experts who think SQL Server is "an application."
"Look, those sheep have been shorn."
data analyst replies, "On the sides that we can see.."