I think the biggest roadblock towards why we haven't seen that happen much yet is because the process for making donations is very manual and relies on having a payment processor of some sort.
A payment system in a federated app could be a non-starter for a number of reasons, but optionally offering support for something like Stripe or Liberapay and making a very simple integration for monthly recurring payments could help prop up federated communities, especially if opting in or out is easy.