This article is only saying that ZFS can mitigate disk data corruption caused by bad RAM, mainly through using checksums, not that it can completely prevent disk data corruption.
Also, it does not talk about the scenario where the in-RAM data being corrupted does not come with checksum. For example, data received from the network by the NFS/SMB server to be written to a file, before it gets passed to ZFS. This data is stored somewhere in RAM by the NFS/SMB server without any checksum before it gets passed on to ZFS. ZFS does not do any work here to detect or repair the corruption.
So, ZFS does not prevent on-disk data corruption caused by bad RAM, and only mitigates it. Using ECC RAM results in a huge relative reduction of such corruption, even though some people may consider the non-ECC probability to be already low enough.
Don't take my word, here's Matt Ahrens, a, ZFS developer. It's not required but a good idea.
"There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem. If you use UFS, EXT, NTFS, btrfs, etc without ECC RAM, you are just as much at risk as if you used ZFS without ECC RAM. Actually, ZFS can mitigate this risk to some degree if you enable the unsupported ZFS_DEBUG_MODIFY flag(zfs_flags=0x10). This will checksum the data while at rest in memory, and verify it before writing to disk, thus reducing the window of vulnerability from a memory error.
I would simply say: if you love your data, use ECC RAM. Additionally, use a filesystem that checksums your data, such as ZFS."
Also, it does not talk about the scenario where the in-RAM data being corrupted does not come with checksum. For example, data received from the network by the NFS/SMB server to be written to a file, before it gets passed to ZFS. This data is stored somewhere in RAM by the NFS/SMB server without any checksum before it gets passed on to ZFS. ZFS does not do any work here to detect or repair the corruption.
So, ZFS does not prevent on-disk data corruption caused by bad RAM, and only mitigates it. Using ECC RAM results in a huge relative reduction of such corruption, even though some people may consider the non-ECC probability to be already low enough.