You can't have a single (virtual or physical) disk used at the same times by more than one Windows machine, unless you use failover clustering; this is not and has never been supported on Windows. If you only need one machine at a time to access the data, you can implement failover clustering, and then you can choose if you prefer to use a virtual or physical shared disk; but if you need two or more servers to access the data at the same time, you need to use some file sharing system; the simplest one would be connecting the disk to a file server and sharing it out.
If you want to use failover clustering, then you can choose if you prefer a shared virtual or physical disk; there are two possible scenarios here: if the clustered VMs are running on the same server, or if they are running on different servers.
If they are running on different servers, you really don't have any option here: you need shared storage (like a SAN LUN), and you need to present it directly to your VMs (using a RDM - Raw Device Mapping).
If they are running on the same server, you can still use RDM to connect them to a physical disk, or you can use a .VMDK virtual disk and connect it to more than one WM (which requires some configuration); the performance difference between the two options is really negligible.
About your last question: a physical disk has the obvious advantage that you can directly access it with any server that can be connected to it, while a virtual one needs an operational virtualization layer to be accessed.