There was a thread a few weeks ago, talking about how bad the food is in Brooklyn Heights. I have lived on Henry street for 15 years, and agree. The issue has become more obvious with the changes in Park Slope (5th ave) and Smith Street.
My take: As with anything there is no one reason. My guess its an equal mix of three reasons. 1) Stable population that is a large mix of family and elderly. 2) Large influx of tourist/one time visitors. During the summers you get crowds coming to look at the views. Its the Theme Park mentality; if they are captive you can feed them whatever. 3) High rents/low supply keep expermints to a minimum.
Whenever there have been good establishments they get swamped (Noodle Pudding, Henrys End, Henry Street Ale House, Iron Chef, etc). But without a large supply of retail space to expermint with, your unlikely to get a tipping point like that which has engulfed Smith St and Park SLope.