TLDR:
Both prevents the dataset to be mounted, but mount management is different :
- by the OS :
mountpoint=legacy
(/etc/fstab
, /etc/vfstab
, …)
- by ZFS :
mountpoint=none
(used in a container set-up)
For further details, please take a look to the ZFS documentation, on the property or the concept section:
Mount Points
(…)
A file system can also have a mount point set in the mountpoint property. This directory is created as needed, and ZFS automatically mounts the file system when the zfs mount -a command is invoked (without editing /etc/fstab). The mountpoint property can be inherited, so if pool/home has a mount point of /export/stuff, then pool/home/user automatically inherits a mount point of /export/stuff/user.
A file system mountpoint property of none prevents the file system from being mounted.
If needed, ZFS file systems can also be managed with traditional tools (mount, umount, /etc/fstab). If a file system's mount point is set to legacy, ZFS makes no attempt to manage the file system, and the administrator is responsible for mounting and unmounting the file system. Because pools must be imported before a legacy mount can succeed, administrators should ensure that legacy mounts are only attempted after the zpool import process finishes at boot time. For example, on machines using systemd, the mount option
(…)