I was curious, and I (italics) went, although the actual documents of ICAO 9303, which determine how the machine-readable zone works, did not find any justification. The most interesting thing is that although there is a discussion about different document formats where MRZ may appear (for example, a credit card), the name string always seems to have a clear number - if any!
So, I would risk that one of the possible reasons is that the comparison from the “real name” to the machine-readable name is lost, and it seems that it is not standardized, so it depends on the transliteration rules in each country . This means that a “real name” converted to machine-readable in country A and then read in country B can legally receive something other than the original “real name”. This makes the machine readable name advisory at best; it doesn't seem like it makes sense to give him a check digit anyway. Meanwhile, the control data may be visually contrasted, as it appears to be standardized for the use of Arabic numerals.
Add to this the typical problems when trying to canonicalize names , and you may also decide that it is better to allow some freedom of action.
As a note, I realized that each of the three debit cards that I have (from the same country!) Has my name a little differently. If I had to programmatically verify that these names are the same, I would definitely make it fuzzy, and then I don’t think I would need (a lot?) About the check digit.
One more note: my obviously alien name in the country where I live always causes “interesting” situations when it comes to official documents. I do not think that I have ever managed to correctly write it here; but, fortunately, it does not matter. At the moment when any official, nurse, doctor, HR, whoever hears, I have an official identification number, they just sigh with relief and stop worrying about the correct name. (This is also a relief to me!)
So, in short: a number is necessary, and you better understand that. It is a convenience.