To add a little more color to this, you had to be able to quickly repaint just a region of a window. And you don't have a bitmap of the window's current contents because that takes up RAM and you'd need CPU time to update a copy every time the window updates (slowing down any animations).
I don't know how it's handled these days, but when I was first playing around with Win32, you'd receive events telling you a region of your window was invalidated. You were expected to figure out what controls and images belonged in that region and just repaint those items because of the CPU load.
Sure, because that was the obvious standard technique in 1996. But for it to become the standard, someone first had to invent it. (And Swing in 1996 probably ran slower than Mac OS in 1986, despite Moore's Law.)
I don't know how it's handled these days, but when I was first playing around with Win32, you'd receive events telling you a region of your window was invalidated. You were expected to figure out what controls and images belonged in that region and just repaint those items because of the CPU load.