It depends, since there are multiple points where a crash can happen.
- SQL Server the process might crash
- Windows OS might crash
- VM host might crash
- SAN/disk controller might crash
Now, if the SQL Server crashes, Brendan McCaffrey's answer outlines the process in detail.
What if it was Windows itself? Windows' NTFS is a journaled filesystem, so it should write whatever data SQL Server tells it to in consistent state, right? No, it does not guarantee that user data - which database files and transaction logs are - are intact. It guarantees that NTFS internal data structures are robust. So, even if NTFS tells SQL Server that a transaction is written, it might not be if crash happens meanwhile.
What if the VM host crashes? This is more tricky. From Windows' point of view, it's a bit like someone pulls the power cord. The big "but" here is that VM systems hide the IO, so that Windows thinks it has made a successful write operation, but it's still cached on the VM host. And now the host crashes and the I-thought-it-was-written thing just disappears. What's the actual state on (virtual) disk? No one can tell. This was not too uncommon a failure, say, 10 years ago when virtualization wasn't that mature a technology.
What if the disk controller crashes? All bets are off. There's no way to tell what the controller actually writes on the disk, if anything. There are no guarantees it makes any sense. I've seen a few of these cases on HP EVAs, but those were rare occurrences.