This is not something new. Ever since the dawn of the Gold Glove award, they have been given primarily to well known players who generally have good offensive seasons and have won the award before. It seems this was the case for the Gold Gloves won by Bonds in the San Francisco era.
Here is a table that shows Bonds' Gold Glove seasons with his dWAR as measured by Baseball-Reference with his rank among outfielders.
The Gold Glove for outfielders is not split by position like the other spots on the diamond, so the award should go to the top three outfielders regardless of where they played. As we can see from the table above, when Bonds won the award, he was often down on the list.
Bonds was an excellent defender, especially early in his career, but as he aged, he moved back towards the crowd and won awards with his bat and his reputation.
The one thing missing from the table that I want to mention is Bonds' best season defensively did not win him a Gold Glove. In 1989, Bonds turned in one of the great defensive performances of all time according to Baseball-Reference's defensive measurement. He had the third best season of any outfielder of all time and the best ever by a left fielder with 37 runs above replacement.
That year, he lost out to Eric Davis (-21 runs), Tony Gwynn (-23 runs) and Andy Van Slyke (13 runs). The difference between Bonds and Davis/Gwynn has to be among the highest for any Gold Glove/non-Gold Golve winner of all time.
Maybe that slight is the reason the voters kept punching his name all those years.
If you're on Twitter, you should definitely follow The Crazy Crabbers. If you're not, you should really consider joining; lots of good stuff going on there.