Once you initiate Storage vMotion, it would first try to use the Hardware Offload feature, as that is the fastest. If that fails, it will use Software Data movers (FS3DM or FSDM accordingly).
This is Generic/Legacy Datamover. During Storage vMotion, if a different block sized vmfs volume or a different array is selected as the destination, the hypervisor uses FSDM. This would reclaim the Zeroed Space.
This is specific to VMFS. During Storage vMotion, if the same block sized VMFS volume is selected as Destination Datastore, it will use FS3DM, provided VAAI is not enabled. If it is VAAI Enabled Array, it will use Hardware Datamover. VMFS has intelligence about the allocated blocks which it uses to copy the data. This is used only when the source and destination VMFS have the same block size otherwise, it falls back to FSDM. It is not applicable for NFS. This can also be called FS3DM without VAAI.
This requires ‘VAAI’ need to be enabled. Both NFS and VMFS supports this, provided it is enabled at the target. For NFS, if required, the VAAI plugin needs to be installed.