There is no preferred currency per se for exchanging into
INR in India, although US dollar, British pound, and the Euro are the most common exchange currencies. These are the three main currencies that most foreign exchange agencies support: for buying
INR, it is usually not a problem as among these three currencies they will be happy to accept them. However, since US dollar is the most commonly exchanged currency, you will be able to shop around at more places for a better rate than if you are trying to exchange Canadian dollars.
INR and converting back to your local currency, you may find trouble finding agents that can carry out the transaction if you want to convert to high numeric amount of a foreign currency other than
USD. Also note that most forex shops do not accept coins. There is no concept of 'commission-free' foreign exchange as it is mandatory to charge a service fee by law.
Converting Indian rupees to other currencies abroad is often not supported and you get bad rates; the reason why there aren't many foreign exchange agencies supporting Indian rupees abroad is because the currency import/export is very tightly controlled.
Foreign currency cannot be used for transactions in shops or for travel. Do note that 1 US dollar is large amount; for many modes of public transport that could be many times more than or equal to the fare you're supposed to pay.
EDIT: While I don't want to promote any particular agency, find out existing retail foreign exchange rates in India is not an easy thing to find on most Indian retail bank websites as they often make you fill out forms instead for any rates enquiries as a way to generate leads for their sales teams. For that reason I would recommend checking Thomas Cook India's website to get an idea of what actual retail rates are. (It is one of the largest players in the forex agency market, to be fair.) Retail rates from other banks and forex agencies are typically plus-minus 1-2
INR from what you find on the Thomas Cook site.