I have done both recently.
Diving: Roatan has more variety interms of wrecks, and reef structure. Both are very healthy systems. Both have very similar fish/species life. The only way you can get more diving in in Roatan is to stay at a place with a good shore dive like coco View Etc...
Food: Neither place is world class but again Bonaire wins this battle as all of the good places to eat are withing a few miles drive and some are quite good. Typically you get more freedom in Bonaire to explore than in Roatan as most stay at resorts. Food is good in Roatan but again you get more variety in Bonaire.
Topside: Well Roatan has more to do but Bonaire is ALL about the topside and your truck rental and unless you don't stay in a resort on Roatan it becomes a hassle at times to explore the island. I consider easily 75% of a Bonaire vacation to be the discovery of the island and the shore dives from your car to the water as well as below during the dive. In some cases, the shore part is more fun than the water part (1000 Steps is a lovely place for a picnic.)
You get a lot of freedom to dive in Roatan at say Coco View etc... but you get even more in Bonaire without being tied down to one location for everything. Just imagine setting out for 4 dives in a single day without a boat, without a DM, without other divers kicking you in the head, without someone telling you where to dive and how long to dive, the list goes on....HEAVEN! This is why I continue to go back to Bonaire. Freedom from crowds of people! I live in NYC and deal with crowds of people for a living. Structure is the LAST thing I want during vacation.
If you haven't done Bonaire yet then I think the decision has already been made and this is coming from a person who loved Roatan.