I'm a relatively active Android developer, it's something I enjoy doing in my spare time when I have a need or idea for an app. To date I have 3 free apps on the Play store. These apps are free and do not contain ads because I don't like paying for most apps myself, I dislike ads, the money they would make is trivial, I believe in open source and have open sourced them and I don't write apps to make money. Some of these apps cost me money to run in addition to the time I spend developing them, Pebble apps alone account for 100k+ hits a day to my server. The one paid app I have on the Play store helps to cover some of the costs associated with running a server. I don't mind paying for a server all that much because I also use the server to host this website and a few other personal things. The biggest downside to free apps is the support that users expect to get.
Consumers of mobile apps seem to think that because they downloaded your free app, that they have a right to very fast and perfect support from the author of said app. I'm not saying this is right or wrong, but I will say that I have been yelled at by users of my free apps because I didn't respond quick enough (they didn't realize I was in a different time zone and they had emailed me at 3:30 am on a Sunday) or they didn't like what I told them. Again, I am not saying all users do or expect this, I never hear from 90% of my users or if I do it's so they can thank me for the app. It's the other 10% that are the issue. Apps tend to suffer in the ratings department when users don't like or get annoyed with something and no one wants to be publicly bashed over minor things or user error. The majority of users that ask for help also tend to say things like "It doesn't work", while that's tremendously helpful, it doesn't fix anything. As a result developers have to spend more time putting in logging and reporting code that can provide the info they need to fix issues when the user cannot. By this point, you might be thinking well maybe this guy just can't design or write apps, but I assure you this is a wide spread problem. I got the chance to talk to many other Android developers at the Pebble developer retreat and some of the first things that came up in conversation were supporting their apps and the amount of email they get. I think a similar phenomenon can be seen with free websites as well, and I would encourage users to vote with their feet, if you're using a service that is bad, go find a better one.
I've decided to take a page out of the book of many successful companies, paid support. There are any number of companies operating in the world today that give away some or all of their software and charge for support. This is a business model I have not heard mentioned in the context of mobile apps (let me know if you have). All future apps that I write and eventually the apps I currently have on the market, when a user emails me with a question or problem, I will be asking for a donation before responding to their request. Granted if it's just a quick question and I can respond in less than a minute, I will, but if I actually need to dig into an issue, I will be asking for a donation. I also think this serves as a motivation for me to respond to email. As it is, when I get an email about my apps, I tend to read them and then ignore them, sometimes for weeks at a time. There really is very little incentive for me to answer them and if anything this is a disincentive because the amount of time that it will take. I'm sure there will be plenty of people that will think this is a terrible idea, that I'm greedy or that I should have written a better app, but they can call it what they will, I challenge them to be on the receiving end of the endless stream of support emails and comments that a free app receives.
I've wrestled with these thoughts for a while and I've been torn because I've asked for help with other people's software as well, but thinking about all of the times I've done this, it has almost always been in the context of a library or open source project that I was trying to use and occasionally improve. To me this differs greatly because the contributions that I could make outweigh the time it requires of others. I have the same feelings about my apps, they are open source for the most part and while pull requests are great, if they have taken the time to go and look even for a minute at the source and post an issue, I'm more than happy to help and I think the same goes for most members of the developer community. There is also a lot to be said about being courteous to your fellow man, even if it is the Internet and neither of you know who the other is.