As far as I know, ZFS does "automatic" deduplication, meaning that your application doesn't have to care about specifying it to the filesystem; ZFS will automatically detect duplicate regions and store them only once.
ZFS can do dedup if you enable it, but IIRC the recommended amount of memory to safely use it is ~5GB per terabyte of storage.