Simply put, because they can. They may have a monopoly or near-monopoly on SMS service, so they can do what they want.
That was the state of affairs in the US until fairly recently; most carriers (in the US at least) offer a pretty standard plan that includes unlimited texting.
I'm probably showing my ignorance around SMS and iMessage, but why can't SMS simply use your data allowance? Doesn't iMessage do this?