FYI I just noticed cp from coreutils 9 is causing issues with SEEK_HOLE and SEEK_DATA on ZFS. https://github.com/openzfs/zfs/issues/11900
There was a proposed zfs fix there, but it doesn't seem to have addressed the issue. I'm not sure how coreutils might detect this issue and avoid SEEK_DATA. Perhaps we could check fs type of the source and avoid SEEK_DATA for zfs? Note gentoo is blocking the update of coreutils due to this issue. cheers, Pádraig