Plugging in a past question I had related to this [0]:
Given that ECC RAM is not abundant, why don't operating systems have self-checks for RAM? Instead we only tend to have near-post mortem checks with memtest86 and the like.
You would have to have some way of detecting that memory is corrupted, which non-ECC platforms do by writing a known pattern to memory and accessing it to verify that the pattern matches. You obviously can't do that during runtime because that memory is being used by the kernel and applications.