Es gibt verschiedene Unterschiede.
Zunächst spricht man von Funktionalität und Erfahrung. Letzteres ist wirklich schwer zu erkennen, wenn Sie nicht möchten, dass die Leistung eine Rolle spielt, deshalb werde ich dies als "subjektiv" dokumentieren. Ersteres hat jedoch einige Punkte.
Insgesamt können Sie eine Menge tun, aber das größte Problem besteht darin, dass Sie keine echte Maschine per Definition ausführen, sodass die Hardwareunterstützung eingeschränkt oder zumindest unterschiedlich sein kann. Dies kann dazu führen, dass Ihre Videokarte nicht voll unterstützt wird. Der Effekt davon könnte groß sein (keine Unterstützung für zum Beispiel 3D) oder ein bisschen weniger (mehr Erfahrung / Leistung).
Das Gleiche gilt für Verbindungen wie USB. Sie verbinden Ihr Telefon mit Ihrem Host-Computer. Es ist nicht selbstverständlich, dass Sie eine Verbindung herstellen können, um sie beispielsweise auf Ihrem Gast (der VM) zu entwickeln. Es kann sein, dass es Möglichkeiten gibt, USB-Informationen weiterzugeben, und für gängige Dinge wie Controller wird dies einfach sein. Je dunkler Ihre Hardware oder Ihr Ziel ist, desto schwieriger wird es, die VM so reagieren zu lassen, als ob die Hardware direkt angeschlossen wäre.
Es gibt also kein globales Problem in der Funktionalität, aber es kann viele spezifische Probleme geben.
Und vergiss nicht die Leistung, das kann ein echter Killer sein, muss es aber nicht sein.