• What kind of wait types are you getting on both servers while the query is running?

    Are all sql server, server wide settings and database settings the same?

    Are both vm's on the same host machine?

    Also in vSphere you should have a resourse allocation tab, a performance tab, and a tasks & events tab; double check to make sure you aren't overcommitted on resources and that the configurations are the same for both machines. The performance tab should give you a logged view on utilization, and the tasks and events tab will just to get a rough idea that there aren't any serious conflicts.

    What does the drive/san architecture look like? What are you doing with the tempdb?