You can live like a king in India for a few thousand dollars a month. In San Francisco, you'll be lucky to pay your rent. As a result, those developers in India are happy to ask for less if that results in them getting the work since $2K/month in India buys them the same (or better) lifestyle as $2K/week in San Francisco.
Besides which, they're competing against all the other workers in their country. If someone charges $50/hour and gets a lot of work for a similar skill set as you, wouldn't you try charging $45/hour to get the business? If the supply of workers is high and the demand for those workers is low, it does become a race to the bottom. Additionally, they must charge less than their American counterparts because of the inconvenience of being in a timezone where the start of the day in India comes after the end of the day in the US, the language/culture barrier, legal considerations (if someone rips you off, you have better legal options available if they're not half a world away with a foreign court system), and so on.
I'm sure if they could still get the work and charge more they would. However, consider an American-based company wanting development work done. If they have a choice between a $100/hour American worker and a $100/hour Indian worker, odds are very good the American will get the work for all the above reasons.