I've seen this before. The most common reasons are that NFS or iSCSI is using that dataset/zvol.
With iSCSi in particular, if iSCSI was sharing the zvol, and then you decide to unmount the iscsi disk, you still cannot remove the zvol because iSCSI will still have that zvol open. You have to remove the iSCSI disk settings from the WebGUI, then restart the iscsi service to recover from this if a zvol is locked.
With NFS in particular, if the NFS share exists in the WebGUI, and anyone has accessed it before, then the NFS service is likely locking it. Removing the share and cycling the NFS service has resolved this for me in the past.
It's non-intuitive that this is the problem because if you look for locked files and such, you'll find none. But I've seen it enough to know better.
Also, if you have an ssh session somewhere (even an old screen or tmux session) in that dataset you won't be able to delete it. PITA to recognize this if you don't know what to look for. I use tmux regularly, so I just do "tmux attach" to see what sessions I have open and close them appropriately.
Hope this helps you resolve the issue!