If the cooling system is not making pressure due to a leak it will lack the ability to push coolant through the heater core. The guages may not show a temp problem and it may show an acceptable coolant level but it also needs to make pressure to operate properly.
Usually when it idles it will cool off but while driving the rpms will circulate enough coolant to allow it to heat the passenger compartment. Granted there could be other things wrong. I would pressure test the cooling system.
Update, I put my pressure tester on it, and DID NOT SEE any LEAK, or drip under the car.
So I tightened the hose clamps and put a new thermostate in and rad cap.
When i did the pressure test i did it wrong initially. I thought it was only supposed to be pressurized to the capacity of the radiator cap. Did it again later following directions i found online(i forget the psi) and found my leak then. Good luck.