ADM is a good pattern for a solution of distributed services such a microservices. It fits many of today's web based business cases.
Consider if we have an Order Domain object. With an OOP approach we would add Order.Purchase() Order.Cancel() etc. It would work well in a desktop app, where we hold orders in memory and do multiple things to the same instance.
But if we have a distributed system, with programs which just to one thing, ie access a list of orders and purchase each one in turn, or get a list of orders and cancel each in turn then having both Methods on the same object makes no sense. We would have to have two Domains or Bounded Contexts:
The only thing these objects would share would be the data structure of properties.
As you add more and more microservices, you end up with dozens of types of Order. It no longer makes sense to talk about an Order as a Domain object, even though its the same conceptual order which is being processed by all these systems.
It makes far more sense to have an Anaemic model, Order, which just encapsulates just the data and to rename your services accordingly:
Now we can talk about Order again and we can add whatever new services we think up to process the, without affecting the other currently deployed services.
Fowler and Co come from a monolith system background, in their world an ADM approach would mean a single app with all these separate services instantiated in memory and the OrderDTO being passed around and mutated. This would be far worse than putting the methods on a rich Order model.
But in a distributed system, there are many programs, each only requires a single Order method and runs it on multiple orders, loading each, running the method and then discarding it. It only requires a single Service and a stream of data objects.
Populating a rich model fully, worrying about the requirements and dependencies of all the Methods only to call a single one and then discard the object almost immediately is pointless.
Plus a change to a single one of the methods would require updating all the distributed components as they all depend on the Rich Model for their logic.
I have no room in my code base(s) for stuff they don't need