Furthermore, they are trained to minimize some function related to labeling error, leading to smaller error in practice if enough training data are available.
generative models are trained to maximize the joint probability of the training data, which is not as closely tied to the accuracy metrics of interest if the actual data was not generated by the model, as is always the case in practice.