The problem with the PC was a mixture of Attitude and Hardware capability.

The Amiga was developed with the knowledge of how people programmed the C64. That was an entirely different way of doing things to what was going on in the PC space. The programmers who were getting the most out of the C64 were not thinking in terms of bullet point feature lists but rather how the graphics chips worked to construct the screen on a scanline by scanline basis. Because the display was constructed over time by the chips the display was a product of the graphics state at the time of each scanline. That meant triggering interrupts as the beam travelled down the screen allowed for changing of the display state in order to supply as much as possible on each and every scanline. This meant things like instead of 8 sprites onscreen you could have 8 sprites per scanline appearing repeatedly down the screen. Colours and display modes could change for a wide variety of effects.

When the Amiga was being developed, they realised that rather than obscuring the internal features down to a fixed list of modes and capabilities, it would be better to expose what the graphics chips were actually doing. An example of this is the registers to show what video memory to display actually represent the video memory being displayed, not just the top of the frame, the value will increment as the scanline travels down the display. That means you are required to reset it every vertical blanking period to the top, but enables a vast array of possibilities. In addition the value that gets added to the pointer to get to the next scanline is also exposed, so you can change the virtual width of the page as well as set it to a negative value to make the display appear upside down.

To combat the problem that such a dynamic view of the video state had where you have to reset everything to first positions every frame, the Amiga supplied the Copper, which was a extremely simple processor that was designed to move constants into constant addresses. The copper could wait for a video beam position then load registers.

I said at the start that the difference was a mixture of attitude and hardware capability. The Amiga excelled because it embraced that attitude. On the PC Side EGA had some similar features and VGA had an interesting mix by virtue of backwards compatibility blending hardware designed for VGA and EGA together. It seems clear that the intention of EGA was to provide similar sort of abilities to the C64 (sprites notwithstanding). For the most part those abilities were ignored, instead of using capabilities like hardware scrolling programmers tended to just treat the device as a dumb framebuffer. There were a few exceptions, most notably was John Carmack, who used the hardware registers to make the Commander Keen engine.

When the VGA came along the hardware features were still there but the direct use of them was not incorporated into the design the way it was in the Amiga. For quite a while mode 13h was all things did. They drew into an offscreen buffer and copied across once complete. It was exactly the Dumb Frame buffer approach. Over time people did figure out how to do a few tricks with the combination of registers designed for VGA and registers designed for VGA. Wolfenstein 3d used ModeX which was using VGA mode13h display output but with EGA style memory addressing to allow page flipping without the entire framebuffer copy. It also allowed 320x240 (instead of 320x200) and indeed I rather enjoyed playing around with the limits at 400x300 in 256 colours. It was also possible to do hardware scrolling on VGA registers. A lot of scrolling games used these features. These were the first games to really surpass the Amiga in graphical ability. They needed substantially more CPU to achieve the same result, but at that stage PCs were considerably faster in raw horsepower.