The rule says never rub stains, but why?

The deeper the color the more likely you could “rub out” the dye. You take the chance of breaking fibers and “roughing up” the surface each time you rub a stain. If you break the fibers you create an obvious dull or light spot that may be permanent.  Your drycleaner may be able to improve the problem, but in most cases, it will only be a temporary fix. Remember: Always blot stains with a dry white cloth — never rub.