In modern hardware you have to try really hard (or really, REALLY often) to corrupt a file. From the software perspective however, things are a lot less stable. Video games are developed fast, and almost every one of them needs their own saving/loading logic, so there is little reusability.
As soon as a game’s saved state grows in complexity, the odds of edge cases increases drastically. Edge cases are the bane of QA, and it is theoretically impossible to account for all of them.
So add one to the other, and you get a variety of games that currently have saving and loading code that did not account for particular edge cases. When those situations arise, the saving logic doesn’t write the game’s state properly, or the loading logic does not recognize a state that may have been valid outside of the edge case.
TLDR: Lots of games, little time for QA -> bugs.
Latest Answers