It's not usually apparent to the average consumer, but there's actually two stages to collecting a payment, and two ways to undo it. The particular combination that occurs may lead to long refund times, on top of any human delays (like Ben Miller's answer addresses).
When you pay with a credit card, it is typically only authorized - the issuing bank says "I'm setting this money aside for this transaction", but no money actually changes hands. You'll typically see this on your statement as a "pending" charge. Only later, in a process called "settlement", does your bank actually send money to the merchant's bank. Typically, this process starts the same day that the authorization happens (at close of business), but it may take a few days to complete. In the case of an ecommerce transaction, the merchant may not be allowed to start it until they ship whatever you ordered.
On the flip side, a given transaction can be voided off or money can be sent back to your card. In the first case, the transaction will just disappear altogether; in the second, it may disappear or you may see both the payment and the refund on your statement. Voids can be as fast as an authorization, but once a transaction has started settlement, it can't be voided any more. Sending money back (a "refund") goes through the same settlement process as above, and can take just as long.
So, to specifically apply that to your question: You get the SMS when the transaction is authorized, even though no money has yet moved. The refund money won't show up until several days after someone indicates that it should happen, and there's no "reverse authorize" operation to let you or your bank know that it's coming.