Diego pushes the scheduling problem out to the executors themselves through an auction mechanism. Mesos delegates it back to the requestors, as I understand it.
The way it was described to me by Onsi Fakhouri is that Diego is "demand-driven", and Mesos is "supply-driven". Diego grew from the lessons learnt on Cloud Foundry v2, so it favours fast placement of requests over perfect fit. But in the fact of the network fallacies, it probably turns out to be a good approach anyhow.
By way of warning, it has been a few months since I read the relevant papers and my memory is fuzzy.
Edit: and it looks as though the auction mechanism was moved away from. Hm.
 https://www.youtube.com/watch?v=1OkmVTFhfLY (an excellent overview)
 https://www.youtube.com/watch?v=SSxI9eonBVs (an excellent update)