I believe it's free within most countries. What's not free is across most nation boundaries (particularly non-adjacent nations). It's mostly because you're dealing with the interaction of several different networks. Also, if a company has a lock on its customers, it'll charge them what it wants to charge them.
Other problems with SMS: Message order isn't guaranteed. Message delivery isn't guaranteed. You receive no notice what state a message is in (in transit, delivered, viewed). It's an unreliable medium tied directly to your phone (short using a service like Google Voice) and only to your phone (ok, less true these days, at least in the Apple ecosystem, where I can see and send SMS messages through my Mac if my phone is on the same wifi network). Still requires the presence of my phone in that last example.