In general we have found it to be a best practice to use physical hardware unless there is a really good reason not to. It's not that you cannot run Alfresco on virtual hardware but as Mark points out, it has to be set up properly. In my experience it often is not. Alfresco uses quite a bit of memory and can be very I/O intense.
It also depends a great deal on what else is being virtualized on top of the same hardware. If there is contention for resources you will see performance impacts.