From what I've gathered from the hundreds of times this question has come up, it basically boils down to Dwarf Fortress being Toady and Three-toe's project - they don't want it forked, they don't want contributions, they don't want people insisting that the way so-and-so did it is better or that they should add so-and-so's feature, etc.
By making the source code public, they would invite a lot of criticism, and "suggestions" from other programmers, and be put under pressure to meet other people's visions of what the game should be - if they don't, then a fork of the game could usurp the main branch and strip toady of what is essentially the result of his seemingly endless strange mood (to put it in DF terms).
Basically, this is toady's masterpiece, and he wants it to remain his. Open sourcing it during his lifetime would put that at risk, and while it may not be likely, there is a chance that he could essentially lose everything he's worked so hard to create once other people are free to modify and criticize.
Dwarf Fortress has never been about the money, so arguing that donations would increase is pointless - If it was about money he has had opportunities to monetize the game before. The fact that it is still after all this time based on donations is a testament to his devotion to the dream, regardless of the financial payoff.
Edit: And I'm saying this as someone who is very much in favour of free software - personally, I would love it if DF were re-licensed under the GPL, and I'm sorta hoping that toady will do something like this in his will, but as long as he's still able to work on it, he has his reasons for keeping the code closed.