Around here, it's usually two syllables.
Some of the old-time fishermen blur them to the point that it's basically one syllable, but there's still a different sound between "boy" and "buoy." The best way I can describe it is a more forceful exhalation after the "b," and maybe just a hint of uplift at the end of the word. Anyway, I can always tell which one they mean.
Interesting that this is closer to the British pronunciation. A lot of the dialects of rural American East Coast communities, from New England to the Outer Banks, are older than what you hear inland and in the cities.