IMO it's politics mixed up with pride. Chara as long-term Bruins captain and outright hero has a certain standing in Boston, certain things he could expect there because of his position and history with the team. This gave him a significant amount of leverage with Bruins management as to what he could request/expect in terms of role, playing time etc. As a man with immense pride in his performance, there are also things that probably he could not tolerate as existing or former captain of the team, a significant reduction in responsibility likely being among them. Had he stayed in Boston, it would have become very awkward for both he and management as they clashed over his ongoing role with the team.
Going to a different organization, those political and pride aspects largely disappear. He's no longer long-term captain of the team, he's just another player. The Caps offered him a very clear role, one that he liked the look of more that what was being discussed in Boston. But more importantly, it's wholly on the team's terms. There's no clash of authority as to how his role will be and continue to develop - it's entirely up to Caps management and therefore much simpler to deal with. Also in Washington, if his performance declines and he gets scratched, well so be it. Zee can just accept that his time has come. There's no awkwardness in that conversation between he and management, and much less loss of pride in being sent upstairs as just another player as opposed to the team legend he is on the Bruins.
So moving on was simply a better fit for him at this point in his career, even for less money and arguably with a higher risk of just being cast aside if he could no longer make the grade.