"X is a good person, but ..." is simply something that a lot of people have been taught to do when they want to criticize someone but don't want to appear to be entirely negative (without necessarily having anything nice to say about the person). It's a common strategy to try to come off as more polite, especially when your statement is written or will be quoted.
A common aphorism that approximates this is "you catch more flies with sugar."