The main reason is nature of the oxide layer formed on the surface. Iron oxides are not remotely like aluminium oxide. They tend to be flaky and porous meaning that they offer no protection to the surface when formed. And iron oxides tend to be lower density and higher volume than the iron they are made from. Aluminium oxide is not at all porous and is very strong.
Bulk aluminium oxide is corundum, which is one of the strongest minerals (it is just about the hardest other than diamond). Corundum occurs as the gemstones sapphire and ruby when it has the right impurities and they are known for their hardness as well as their beauty. It is also unusually dense for a mineral made up of relatively light elements. So even a thin layer provides strong protection.
It is also worth noting that the aluminium oxide layer can be disrupted (e.g. by gallium or mercury), in which case aluminium does the equivalent of "rust", in some cases quite spectacularly.
It is also worth noting that some steels can be made to have a passivation layer which is why the are "stainless". This is achieved by alloying with metals such as chromium that facilitate the creation of a stronger oxide layer on the surface.