Several things.
Graphics cards have overdraw. They don't have an exact idea of which polygons cover which other polygons. They employs various culling techniques to narrow down the possibilities but these techniques aren't completely effective. So they end up draw stuff and then overwriting that same stuff at some later point. This eats up bandwidth.
Second, memory access of textures tends to take the form of a bunch of accesses that traces out a curved lines on the surface of the texture. Moderns memories are good at sequential access but kinda sucky at non-contiguous accesses. Memory is quite slow if the curve of the line prevents large contiguous accesses. So the real bandwidth is less than advertised. (this can be alleviated by using a tiled memory architecture)
Also, polygons often have multiple textures nowadays. They have the plain texture, maybe a light map, and maybe a bump map. And vextex lighting creates yet another texture map in real time. And each individual light source has to be calculated independent of the others so each light source adds linear increasing processing load. (this is why you never see 100 lights in 1 frame.)
It used to be that figuring out polygon ordering by way of the z-buffer really sucked down the bandwidth but this may be not a big deal anymore since video cards now have on-chip z-buffer.
In the future, cards may have on chip frame buffers and that would alleviate memory constrictions a little more.
And refreshing the screen can eat up a fair bit of bandwidth too. Suppose the screen is running at 1024x768x32bit @ 100 hz. Running at these specs would require 300MB/Sec of bandwidth.
But since the resolution of monitors and their refresh rates only grow slowly, the amount of bandwidth required per texture will also only grow slowly. Memory speed, on the other hand, grows exponentially in rough accordance with moore's law. So eventually memory bandwidth will be more than adequate. (of course new ways will be found to use more bandwidth but even so, moore's law is very powerful.)