When you write that it is 'conventional to work only in USD' may I politely suggest that could be one of the reasons why the user base is small (as implied in the first sentence)? When I pay in a foreign currency (as the U.S. dollar is for me) my bank changes a fee. This is usually around 5% of the total but there is also a minimum charge. For example, if I were to pay for a lesson costing USD 15 then I can expect to pay the equivalent of about USD 5 in fees. If the teacher is also based outside the USA, she or he is probably paying a similar amount in fees. So the lesson costs USD 15 and the banks make about USD 10 between them. I would like to support your website but I can go to an Italian website (I am trying to learn Italian) and book a lesson that does not involve putting money in the bankers' pockets!
The U.S. dollar is a major currency for sure but it still a currency used in a country whose population represents less than 5% of the world's total. Maybe you would like to consider offering payment possibilities in other major currencies.
By the way, I fully understand that you run this website to make money but I wonder who are those 'middlemen' take you mention.
I imagine most of the people who visit this site do not live in the USA, yet all payments in the 'Find a Teacher' section have to be made in USD. So, for example, if both teacher and student are based in Europe then both would incur exchange rate costs. Why not offer the possibility to pay in other main currencies?