The answer likely has zero to do with GTK or even modern computing, and absolutely everything to do with ANSI/VT100 graphics, which is what the huge majority of terminals emulate. The colors you get are those that are capable of being sent in an eight-bit escape sequence. Yes, theoretically, folks could ramp up the terminal protocol to something New and Improved, but I'm afraid that
a) people are pretty happy with the status quo, so there's no real groundswell for any changes, and
b) EVERYTHING supports VT100 -- your terminal, that Cisco router over there, the RS-232-accessible BIOS on the server in the server room, my phone... the list goes on. Basically, if it's not connected to an IBM mainframe (in which case 3270 emulation with EBCDIC comes into play -- with pretty much all the same limitations), it's VT100. "Entrenched" barely scratches the surface.
So, until such time as a multi-byte replacement for ANSI/VT100 "graphics" comes into play, I'm afraid we're stuck. I'm aware that the newer terminals do support Unicode characters -- but as far as I'm aware, Unicode addresses just characters, and not colors. There does seem to be some fairly esoteric debate on this (see https://stackoverflow.com/questions/9626115/color-in-the-unicode-standard), but I certainly don't see anything like a firm consensus.
Bottom line: most folk consider it "not broke," so they ain't rushing to fix it.