But why?
Blame the silly French frogs.
But the French word colonel, amazingly for a French word, is pronounced exactly as it's spelled, with no r sound whatever.
The Italian word colonello, from Latin columnellus, the leader of a (military) column, got borrowed into French twice. The first time, it became coronel in French, possibly on the notion that it was from Latin corona 'crown' rather than columna.
The form coronel spread to English and Spanish before being replaced in French itself by a second borrowing from Italian, this time more correctly as colonel. The spelling, but not the pronunciation, of this second form then entered English, leaving us with l in the spelling and r in the pronunciation.

