Functionally the main difference between Monero and Zcash (esp. after RingCT is integrated) is that Zcash has a larger anonymity set at the level of individual transactions (all previous users) than Monero (some randomly chosen subset of previous users). In practice the difference is likely somewhat narrower, but difficult to fully characterize.
There appears to be an epic distinction that is not about anonymity set size (although I claim RingCT will fail in unprovable, uncharacterizable, unreliable ways in that comparison as well), but rather around meta-data.