The fault in the riddle's proposed calculation becomes much more obvious if you do it with a larger refund. Let's say they get a $10 refund instead, and the mailmain/bell boy/whatever keeps $1. Now they each paid $7*3=$21, plus the $1 kept by the mailman is $22. Are we supposed to assume that $8 has now gone missing? No, of course not, because the calculation is meaningless and wrong. You have to subtract instead of add: they each paid $7*3=$21, *minus* the $1 kept by the mailman equals the $20 that the hotel/restaurant has. Same with the original: $9*3=27, minus the $2 equals $25.

The only reason anyone can think there's something deeper going on here is because the difference is only $1. If the difference were bigger (like in the situation I just gave) I think people would be much quicker to realize the calculation is bogus and that nothing "disappeared".