The difference between the MySQL SUBDATE() and DATE_SUB() functions is exactly the same as the difference between the ADDDATE() and DATE_ADD() functions. One function allows for two different syntax forms, whereas the other allows for just one.
This article demonstrates the difference.