The issue is the cost of precision.
All MCUs need a fast clock oscillator so they run, but it doesn't matter what this frequency is, within a wide margin. This means you can use a very cheap, uncalibrated crystal, a ceramic resonator, or if you don't need to hit baud rates, even an RC oscillator. If you used this as the timing source, you would get quite erratic time-keeping behaviour as the temperature changed, and as it aged.
The mains waveform is kept accurate, at no cost to you. As the clock needs a mains power supply (too hungry for batteries), you might as well use that. Note that the actual mains frequency varies a little from f_mains (50 or 60Hz) throughout the day. What is guarranteed is that after n periods of 24 hours, there will have been approximately n*24*3600*f_mains cycles, with the error being non-cummulative. In other words, ideal for a wall clock.
From wikipedia Utility Frequency article
Today, AC-power network operators regulate the daily average frequency so that clocks stay within a few seconds of correct time. In practice the nominal frequency is raised or lowered by a specific percentage to maintain synchronization. Over the course of a day, the average frequency is maintained at the nominal value within a few hundred parts per million. In the synchronous grid of Continental Europe, the deviation between network phase time and UTC (based on International Atomic Time) is calculated at 08:00 each day in a control center in Switzerland. The target frequency is then adjusted by up to ±0.01 Hz (±0.02%) from 50 Hz as needed, to ensure a long-term frequency average of exactly 50 Hz × 60 sec × 60 min × 24 hours = 4,320,000 cycles per day. In North America, whenever the error exceeds 10 seconds for the east, 3 seconds for Texas, or 2 seconds for the west, a correction of ±0.02 Hz (0.033%) is applied. Time error corrections start and end either on the hour or on the half-hour.