1) virtual environment could be misconfigured. I have NEVER been to a client that already had such an environment set up with SQL Server running on it where they did everything optimal, and most of the time things are HORRIBLY bad.
2) First thing to do is TUNE your database application/structures/code. Aggregate profiler analysis is a huge help with this.
3) Then do fileIO stall and waitstats analysis
4) the "slow" DELETEs could have many causes, such as having to scan a big table per 5K batch, too many indexes on the table, heap with lots of forwarding pointers, blocking from other users, etc, etc.
Kevin G. Boles
SQL Server Consultant
SQL MVP 2007-2012
TheSQLGuru at GMail