SMS costs nothing to the provider. Not nothing as in almost nothing. Nothing as in 0.00USD per SMS. They are sent in unused fields of control packets.
They also aren't entirely free to the operators themselves - once you start counting them and charging for them, there are administrative costs; then there are costs related to interconnections with other operators, and costs related to maintaining their own SMSCs (SMS centers). The only thing in this whole mechanism that the operator gets for free (actually not free since they have to pay for the network and base stations) is the delivery channel which is not insignificant but it is also just one part of many.