The mechanism is simple: the slight inconvenience of cancellation prevents a huge number of users from cancelling as soon as they want to.
This is why getting your customers to set up automated and recurring payments is the pot of gold everybody wants (not just in software).
You don't have to intend to bilk people if you do subscriptions; it's inherent in your business model.
Try putting a confirmation screen in your app that makes the user press "Renew" each month before the app charges them again. That would move you toward the moral end of the spectrum, but it would gut your sales.
A $2 per month subscription, even if totally unneeded, is not something most busy people can find the time to deal with cancelling. Pretty soon a year has gone by and your "service" has provided zero value to them but you've ripped them off for $24.
(For clarity: I don't mean you personally, and also I do work in subscription-based software. I just don't have any illusions about it and it makes me feel icky.)