Someone asked me this question, and I live this reality every day. Let’s look at what’s involved!

Each room in the house has its own thermal loss and gain. To simplify, this is directly related to the difference between the indoor and outdoor temperatures. This is mostly true but other effects like sun shining, people, electronic devices etc. all affect the equation. But for now, think of each room as a thermally insulated box losing a certain amount of energy over time when it’s cold out (this discussion applies to air conditioning also, just in reverse).
Ideally, if you replaced the lost energy with a heating system at exactly the same rate of heating, you would keep the room at a constant temperature. There are, in fact systems that attempt to do that. They run radiators to heat the room. The radiators run constantly but the water running through them is adjusted either in temperature or flow rate, so that they supply just the amount of energy being lost.
In practice, these approximate the heating because they don’t actually “know” the true amount of heat needed to keep the room at a constant temperature. These systems are usually manual, requiring the resident to adjust the radiator manually. Too hot? Turn it down. Too cold? Turn it up. It can be comfortable and result in quite stable room temperatures, but gradually they fluctuate and someone has to twiddle the knob.
Most homes in the United States (and elsewhere) use heating systems with a thermostat that senses the room’s temperature. The system can be “on” or “off”. If you’re lucky, they have two heating settings, “high” and “low”. But most are simply on/off. When “on” they provide some set amount of heat and only that amount. Imagine if your car accelerator only had two positions – full and none. You’d step on the gas until you got to your desired speed, but by the time you let up the gas, you’d be going too fast, so you let off the gas. The car slows down, but ends up slower than you want to go so you step on the gas again. This herky-jerky car ride is exactly how most heating systems work.
Your home’s thermostat is like you looking at the speedometer. It runs the heat until it sees the temperature rise a certain amount. Maybe you want it at 70F. It runs until the temperature changes, maybe it gets to 71F. Then it turns off. However, just like the car, the heating system can have “momentum”. The thermostat doesn’t know to turn the heat off or on until the temperature changes. So you might get a larger rise in temperature. Maybe the house goes up to 72F. Then it starts cooling. The thermostat watches the temperature, knowing that you want to maintain it at 70F. It doesn’t “know” that heating needs to turn back on until it drops below 70F, so it waits. Then when the temperature drops to 69F it turns the heat back on – full blast (it might be 68 or 67. Thermostats often have an adjustment for how much the temperature is allowed to swing before turning on). Then, once the heat is on, it takes a while for the room to heat up, so you get a constantly swinging temperature – up and down by several degrees.
The entire system design prevents it from keeping the room at a constant temperature. It’s on or off only. Even if it has a few settings, the basics are the same – the temperature will fluctuate.
Here’s where energy efficiency comes in and affects comfort. If you have a very tight, well insulated room/home, the room cools slowly when the heating system is ‘off’. Maybe the heater only has to turn on once an hour. This slow variation in temperature makes the room much more comfortable. There will still be a temperature swing, but it will be slow. With this type of home, you can use a thermostat with a narrower band. Maybe it turns on at 69.5 and off at 70.5. The system might come on every 20 minutes. It’s efficient and comfortable.
But in a typical inefficient room, there might be leaky windows and poor insulation. In this case the temperature drops rapidly when the heat is off and it takes a long time to warm up when the heat comes on. You feel this because there might be drafts from the windows or just cold from the poorly insulated walls. The room is uncomfortable.
In this case, if you had a thermostat that came on at 69.5 and turned off at 70.5, it might have to turn back on only minutes after it turned off. The room’s temperature fluctuates quickly forcing the system to cycle fast in order to keep up. This repeated on/off is hard on the system and can lead to premature breakdown. So typically the thermostat is set to swing by at least a couple degrees before turning on or off.
I apologize for a long-winded answer, but it’s not a simple question. It has many variables.
Even after all this, you might ask why a “smart” thermostat couldn’t be made. In fact, some, like the Nest thermostat, try to measure and predict how the house will behave. They “learn” the temperature fluctuations and adapt.
Let’s return to the car example. If you were driving the car, you would learn that you might have to let your foot off the gas before it hit 50 because you know it would keeps going faster for a few seconds and hit 50. You might also know that when the speed dropped to 49, you need to hit the gas because it would drop further before it started accelerating. You “learn” the behavior of the car and “anticipate” the change in speed. Smart thermostats do the same thing and can help keep your room more comfortable by reducing the swings. However, there will still be swings.
There’s also other heating system types. Radiant floor heating, when done properly, consists of concrete with tubes embedded in it. The concrete has a lot of thermal mass, meaning it takes a lot of energy to heat or cool it. With the automotive analogy, think of a big truck – it accelerates slowly but it keeps rolling along when the gas is off and takes a lot of braking to slow it down.
With good radiant heating, the designers will adjust the water temperature and flow to keep the mass of the concrete at a consistent temperature, making the room temperature likewise consistent. It will still vary, but it does so very slowly. This is why people with a well designed radiant floor heating system love it so much. It’s comfortable and the heat radiates everywhere, not just along the walls or blowing from a few spots.
But radiant isn’t perfect either. What happens to that truck if it has to stop suddenly? Big problems! It weighs so much that it cannot stop quickly. The same with the radiant floor. If it’s keeping the house warm on a frigid night, then the sun comes up and it gets warm out, the mass of the concrete still has all that heat. So if you don’t anticipate the reduced need for heat during the day, the house will overheat. Likewise, after a long, sunny day, you might forget to turn the radiant heat back up. When the sun goes down, it might take an hour or more for the floor to heat back up. In the meantime, you’ll be feeling chilly! Again, you can anticipate this, by turning the heat on as the sun starts going down but before the house cools noticeably.
As you can see, it can be incredibly complicated to keep the house at a constant temperature. There are many variables which make it impossible for just a thermostat to do this. It would be possible if the entire system were designed around this goal, and by system I include the house itself. The system would have to be able to monitor temperature changes, heating system operation, sunlight, and other variables. Ideally, the system would be able to provide the exact amount of heat required to keep a room at a constant temperature and anticipate heating needs in the future by understanding how the room behaves.