The 'doSummary' function is not using the weights. If you multiply the weights by the variable that you want to average, you will get the same average as the package displays. As an example, take your code and do this:
> tapply(m.dat$age, m.dat$treat, mean)
0 1
19.62821 21.54412
> tapply(m.dat$age*m.dat$weights, m.dat$treat, mean)
0 1
21.17811 21.54412
And so, they are equal the MatchIt results...