A 1 M timing resistor means that the capacitor charging current varies between 12 uA and 4 uA. Depending on the quality of the capacitor, its leakage current might be a significant percentage of the charging current, upsetting the standard timing equation. Also, the bipolar 555 has inputs currents that contribute error. The CMOS part has extremely high input impedances, eliminating some of the errors and allowing and even larger timing resistor, which allows a smaller timing capacitor. The timing capacitor is the largest source of error in your circuit. Besides its poor initial tolerance, its value changes with age, temperature, phase of the moon, etc.