Why? The thermostat is a valve that opens and closes to regulate coolant flow through the engine. When the coolant is cold the valve will restrict coolant flow allowing the heat of the engine to increase coolant temperature. As the coolant temperature increases, the thermostat opens to increase coolant flow. A thermostat has a heat rating that dictates how high the coolant temperature will be before it is fully open. A common thermostat will be 195 degrees F. First thing to do is to make sure that the coolant temperature is up to operating temperature, 195 degrees F or higher. A quick check by feeling the radiator hoses would tell you if it is hot. Using a thermometer taped to the upper hose of the radiator will tell you exactly where you are. If it isn’t hot enough, change the thermostat.
Your coolant level may be low.
Why? A low coolant level will reduce the flow to the heater core.
Your heater core may be clogged or restricted.
Why? If your heater core is restricted or clogged then coolant either isn’t flowing through it, or it is so slow that it is cooling down and that translates into your heater blowing cool or warm air inside the vehicle.
You may have a bad clutch fan, or fan switch.
Why? If you have a clutch fan it may be spinning too fast keeping the coolant temperature too low. If you have a electric fan it may be running too long or staying on, again keeping the coolant temperature too low.