Solution, it requires a couple of commands every time, but al least it is possible to move the files between shares on zfs.
The cache is formatted as zfs and every time a new root directory get created, it becomes a dataset. To move between shares it has to be a folder, which you can manually create by cd to the cache and mkdir.
What I did is;
Move the whole "Downloads" folder to the array.
cd /mnt/cache
mkdir Downloads
Move everything back onto the cache, because is have Downloads set to cache only.
Note; This still does not work, because when you try to move from downloads to another share which is not yet on the cache, it will automatically create a dataset. So also when moving file you have to, every time, create a folder first, because mover will pull this folder of the cache every time it runs. The Download folder, doesn't have to be recreated, because it stays on the cache.
cd /mnt/cache
mkdir Destination
Obviously because my Downloads share now is a folder, not a dataset, you cant create snapshots etc. But the whole point of me using zfs on the cache, is to utilize the snapshot capabilities of the appdata, domains and system folders not anything else.