If a pre-paid customer doesn't have the money, they'll either go without or downgrade their service. Less revenue for the company.
If a post-paid customer doesn't have the money...they might later. Their bill can be rolled forward, half paid, eventually sold to collections, whatever. More revenue in the long-term no question. Also, if you can charge your post-paid customers for all the things they opted into but didn't think too hard about the pricing on - SMS messages used to be $0.10 in my market, lots of parents opened up bills with 2000 text messages on them. Long distance and overseas calls were hugely expensive (and still are, in some cases) - big money makers for the carriers.
And contracts, of course. Customer acquisition is one of the biggest problems in the industry, getting people on a monthly billing cycle keeps them from easily switching.
Sure, but you still have to switch the billing cycle from end of month to beginning of month somehow. Customers are definitely going to care if they are suddenly hit with a 2x charge.