When using a nfs export, cp seems to not try hard enough using copy_file_range(). This was the conclusion we arrived in this forum thread[1] at Truenas forums. It was found a way to force cp to use it, but it should not be necessary, since there are supposed to be fallbacks.
I'm unsure if we found something that triggered the undesired behavior. [1]: https://www.truenas.com/community/threads/nfs-does-not-support-server-side-copy-with-zfs.103309/post-712071 -- Braiam