The latter part of Assessing the Potential for Data Loss talks a bit about scrubs.
Iirc I run one every 5 or 6 weeks; when data is read ZFS automatically corrects any error if it has enough parity. I also run daily short tests and weekly long ones in order to catch any issues with the drives.
Crucially, I run ECC hardware.