Yes. ZFS has a couple layers of caching in RAM and it actually reads from those caches first, before trying to read from disk. And then it caches whatever it has to read from disk, in RAM. That's why you need lots of ECC RAM to run ZFS. Because errors which propogate from RAM to disk cannot be corrected and such will destroy the whole file system.