If it’s not the best, it’s close. This will vary a bit depending on what you’re really doing in that “generic VM” but 64K is the default recordsize I reach for in my own VMs, and I would expect either 64K or 32K to be the best choice for “generic” VM volblocksize also.
What you’re looking for is a good midway point that doesn’t penalize you too badly at either 4K or 1M random I/O. That’s what the zfs devs were already going for with the default recordsize of 128K, although many modern ZFS senior folks (including me and Allan both) tend to think 64K would have been / would be a better default. It’s certainly a big improvement for VM back ends specifically!