Well, for one thing (and this will not be popular), the problem with hiring from India is that then you have to deal with Indians. While generalities are always dangerous, it is nevertheless very true that there is a distinctly "Indian way" of doing software development. Since this is the *only* way taught in Indian schools, most Indian developers are literally completely lost when they need to deviate from it. That way is capable of doing some ordinary things acceptably well, but as someone who's spent his career in a series of positions on the bleeding edge of technology, I can tell you that such rigidly-thinking developers are worse than useless (actually a serious detriment) when trying to do something new and innovative.
As a for-instance, a few years ago, I was hired as a contract CEO to launch a company and build out the first version of a fairly large and scalable SaaS enterprise app. (We went from zero to $15M/month in under three months.) Its data tables were quite appropriately structured by the needs of the application (which in turn, were almost entirely driven by the human users' workflow needs). As part of the handoff, the owner of the company brought in a dozen-strong (plus managers, of course) Indian outsourcing team to take over development from our (admittedly very talented) team of only two here in the US.
They immediately insisted on "re-architecting" ("architect" is not a verb) the DB to rearrange all the tables to their liking. (Yes, there were places where the tables were not in third normal form - it's not a law, you know...) Performance fell by nearly 99%, and their other "refactoring" of the code to match "Indian way" software dev practices did even more damage to the app's price/performance. (Like most Indian programmers (they're not good enough to be called developers) I've encountered, they could only think in bad Java even though this was a pure Python/JS environment.)
I didn't stay through the destruction of the great product we had built, but the way they were going, I imagine the final product cost 1000x more to run and operate than the one we did using much more capable US talent. (And yes, what we built was perfectly, actually much more readily, maintainable. It was a marvel of clear, direct code, but did not conform to trendy Indian CS norms, hence their need to re-do everything the only way they understood...)
I've never found Indian outsourcing to save money, effort, or time (although Eastern Europe and Costa Rica have been winners), and getting quality product from India is nearly as difficult as getting quality products out of China...