There isn't a single rate that works in both directions. There are two rates, one for each direction. So if $1 = 64.23 INR, you may find that 100 INR = $1.55.
In fact, it's even worse than that. The "rates" are just the average values at which transactions occur. What happens in the real world is that someone (presumably your bank in this instance) offers to sell 100 INR for some amount, perhaps $1.56. Other traders may either accept this price or refuse to trade. If they refuse to trade, the bank may accept one of their offers, perhaps $1.55.
Anyway, the answer to your question is that whomever does the actual conversion keeps the "difference". Of course, they may then lose that money if the value falls before they sell. More confusingly, either your bank or your friend's bank could do the conversion itself. Either or both could hold balances in various currencies so that they don't have to rely on the vagaries of the exchange market. This is called a money market account, and banks let their customers invest in them.
It is a bit more likely to be your bank that gets the money than your friend's bank. Your friend's bank doesn't actually need to know that your account is in USD. They just transfer the amount in INR. It's your bank that has to convert that into USD to deposit in your account.