Fuel-rich operation is common in hydrocarbon engines and improves specific impulse, although there's some confusion about the mechanism by which that occurs.
According to Sutton & Biblarz' Rocket Propulsion Elements:
Rocket propulsion systems usually do not operate with the proportion of their oxidizer and fuel in the stoichiometric mixture ratio. Instead, they usually operate fuel rich because this allows lightweight molecules such as hydrogen to remain unreacted; this reduces the average molecular mass of the reaction products, which in turn increases the specific impulse.
Henry Spencer, however, says:
In a chemical rocket, where the reaction mass and
energy source are one and the same, trying to lower the molecular weight
by adding an excess of one propellant also reduces the flame temperature,
and if you actually do the math, it's always a net loss.
So why do they run fuel-rich? Well, partly there are some simplifying
assumptions in that math which aren't strictly correct. More important,
though, is that the textbooks look at the wrong part of the equation.
They skip over the nozzle efficiency, which is not independent of the
gas composition. In particular, the subexpression (gamma-1)/gamma, [(k-1)/k in Sutton; the "ratio of specific heats"] which
appears as an exponent in the nozzle efficiency, is a strong function of
gas composition, and to a first approximation, it's inversely proportional
to the number of atoms per molecule. So an excess of fuel, meaning that
some of the fuel ends up as CO or H2 rather than CO2 and H2O, can make a big difference to nozzle efficiency, and that can more than make up for
the reduced energy release.
In complex molecules, apparently, a lot of thermal energy can be bound up in flexing of interatomic bonds (as discussed in another yarchive thread), which doesn't contribute to the momentum of the escaping exhaust, which determines the thrust.
Here's Clark's Ignition! (he uses $\frac {R} {C_p}$ in place of Spencer's $\frac {\gamma - 1} {\gamma})$:
If we consider specific exhaust products, this is what we find: N2 and solid C are practically useless as energy producers. HCl, H2, and CO are fair. CO2 is good, while B2O3, HBO2, OBF, BF3, H2O, and HF, as well as solid B2O3 and Al2O3, are excellent. When we consider the R/Cp term, the order is quite different. The diatomic gases, with an R/Cp above 0.2, are excellent. They include HF, H2, CO, HCl, and N2. (Of course a monatomic gas has an R/Cp of 0.4, but finding a chemical reaction which will produce large quantities of hot helium is out of the range of practical politics.) The triatomic gases, H2O, OBF, and CO2, with an R/Cp between 0.12 and 0.15 are fair. The tetratomic HBO2 and BF3, at about 0.1, are poor, and B2O3 -- well, perhaps it should be passed over in silence. As for the solids, C, Al2O3, and B2O3, their R/Cp is precisely zero, as would be the thermal efficiency if they were ever the sole exhaust products.
Note the focus on the number of atoms in the exhaust products.
Hydrogen-oxygen engines do the same; here's Spencer again:
Yes, the SSMEs run
fuel-rich -- all hydrogen engines are run very fuel-rich, because that
improves performance considerably. Having a fair bit of unreacted
hydrogen in the exhaust turns out to be good for performance in several
ways, and hydrogen is so light that the mass penalty for this is small.
Ideally, hydrogen engines would run at about 4:1, with half the hydrogen
unburned; in practice, because hydrogen is so bulky, considerations of
tank mass usually force the engine people to compromise on about 6:1.
In addition to putting simpler and lighter molecules into the exhaust, running fuel-rich also keeps the combustion temperature down, making it more practical to cool the chamber and nozzle. Fuel-rich operation is preferred over oxidizer-rich for cooling because hot oxidizer-rich exhaust tends to attack the metal of the combustion chamber and nozzle, which quickly leads to "engine-rich combustion" -- destructive burn-through of parts of the engine.