I am not sure about the proper ZFS terminology for this, loop device file, or zpool from a file, or sparse file. The idea is that it’s not a block device but goes first through some other existing filesystem.
There should be some performance hit, but if the workload is not I/O-intensive, it is generally OK. Especially if you have two or more vCPUs in the VPS.
It is possible with many VPSes to repartition the storage, therefore making space to create a ZFS pool on block storage. You generally do that when you boot to rescue. I have not tried it with Hetzner, though I am fairly confident it is doable. Scaleway cannot do that repartitioning. Linode is quite good here because they support repartitioning through the management interface!
Scaleway has network block storage for all storage needs. I think other companies let you use storage from the SSDs of the server, which is much better for I/O. That is, a 20GB VPS gives you 20GB on that local server. In terms of I/O, it remains to be tested which is better, 1) ZFS on loopback device but on local real SSD, or 2) ZFS on network block storage.