I'm late for this party, but this is such a common and important question that I had to answer.
By "services" do you mean the "application layer" described by Evan in the blue book ? I assume you are doing, in which case the answer is that they should not return a DTO. I suggest reading Chapter 4 in a blue book called Domain Isolation.
In this chapter, Evans says the following about layers:
Break a complex program into layers. Design a design within each layer, which is cohesive and depends only on the layers below.
There is a good reason for this. If you use the partial order concept as a measure of software complexity, then having a level depending on the level above increases complexity, which reduces usability.
Applying this to your question, DTOs are indeed an adapter that relates to the user interface / presentation level. Remember that remote / interprocess communication is exactly the purpose of the DTO (it is worth noting that in this post Fowler also argues against the DTO, which is part of the service level, although he does not necessarily speak DDD).
If your application level depends on these DTOs, it depends on the level above you, and your complexity increases. I can guarantee that this will increase the complexity of maintaining your software.
For example, what if your system interacts with several other systems or types of clients, each of which requires its own DTO? How do you know which DTO method your application service should return? How would you solve this problem if your language does not allow you to overload a method (in this case, a service method) based on the return type? And even if you come up with a way, why break your application layer to support the presentation layer problem?
In practical terms, this is a step along the path that will end with spaghetti architecture. I have seen this kind of devolution and its results from my own experience.
Where I work now, services of our level of applications return domain objects. We do not consider this a problem, since the level of the interface (i.e., the User Interface / View) depends on the level of the domain that is under it. In addition, this dependency boils down to a link-only type of dependency because:
a) The interface layer can only access these domain objects as read-only return values ​​obtained by accessing the application layer
b) service methods at the application level accept only “raw” input data (data values) or object parameters (to reduce the number of parameters where necessary) defined at that level as input. In particular, application services never accept domain objects as input.
The interface layer uses the mapping methods defined in the interface layer itself to map from Domain objects to the DTO. Again, this allows the DTO to focus on being adapters that are controlled by the interface layer.