Dash provides some anonymity features, but are generally opt-in (i.e there are certain transaction types which provide more anonymity, but they are not required). Even with "anonymous" transactions on Dash, I believe only the sender/receiver can be somewhat masked, but the amounts are not masked entirely.
Monero provides pretty anonymous transactions which have gotten better with it's recent introduction of Ring Confidential Transactions, which makes it so that new transactions have (by default, and to be enforced later this year for all Transactions) hidden amounts, sender, and receiver.
ZCash is arguably the most anynomous, as it has hidden amounts, sender, and receiver from the ground up, but comes with a bit more risk since it is essentially based on entirely new, and as yet unproven, crypto (zkSnarks). It is an exciting promise for the future, but it also required a "trusted" setup of a random seed which, if compromised by any party, could enable infinite, undetectable inflation of the ZCash currency.
In short, there is no perfect anonymity, everything is a scale and a spectrum of security, and what type of guarantees you can get around the anonymity properties you want.