$300 is a lot but the Bahamas are not alone in charging high fees. When we went to Brazil, as US citizens, we had to pay $160 each to get our visas. We had to apply ahead of time since they are required to be in hand prior to arrival. And the $160 was called a "reciprocity" fee. It seems that the US charges the same for Brazilian citizens applying for a US visa.
That $300 does give you unlimited entries into the Bahamas for the first 90 days, a free 90 day fishing license, the pet permit is only $10, no over time fees and access to some of the best cruising within 100 miles of the US. But don't forget to bring the beer. Last June, the cheapest we saw was $48.00 for a case of 24.