There are a few reasons this could happen but the most likely is that the Thermostat is stuck open. This means when you don't have much load on the engine the Coolant which powers your heater does not have enough time to warm up. Then while driving you put a load on the engine, increasing the amount of heat created which will warm the coolant.
There could be other reasons for this is well, but I believe that in most vehicles replacing the thermostat is a somewhat simple and inexpensive job.
It could be one of the heat shields on the exhaust system
Because the heater pulls the heat off of the motor and uses fans to circulate it to you
what are you driving? email me direct if you wish
You have a bad blower resister..............
The heater in your car uses waste heat from the engine to heat the car. When the engine is not running there is no heat to distribute.
Common causes include low coolant, air trapped in the system, a thermostat stuck open, or a weak water pump. When you’re driving, the engine spins faster and moves coolant better, so you get heat. At idle, that flow drops, and the heater turns cold. At Stewart’s Automotive of Sacramento, a driver came in complaining the heater only worked on the freeway. The inspection showed low coolant from a small leak, and once that was repaired and the system topped off, the heater stayed warm even at stoplights.
Possible causes are, low on coolant, thermostat stuck open, clogged heater core or vacuum scorce not getting to the heater control.
you need a new blower motor resistor
A car blowing cold air only while driving usually means: Low coolant level – not enough heat at idle Air trapped in system – blocks heater flow Weak/bad water pump – works better at higher RPM Partially clogged heater core – needs more flow to heat When you drive, coolant moves faster, so you finally get heat.
blower motor resistor is burned out
Most (not all) cars are heated by the engine. When fluid moves through the engine it heats up. This fluid moves through the heater core, a fan moves air over the warm heater coils blowing warm air out to the cars cab.
Defective Blower Motor Resistor Pack.