why is a crystal needed to program microcontrollers
It depends on the programming hardware the designers built into the chip. 

Usually they want to be to program it (in some mode) without external components so they can be supplied pre-programmed. 

Beyond that, if it increases the cost of the chip and does not benefit high-volume customers it won't necessarily get implemented. Those particular parts are really old chips, and transistors cost significantly more in the days of old.