wp_mail() is a pluggable function: It can be replaced by plugins. That’s useful in cases where the regular
mail() doesn’t work (good enough), for example when you need extra authentication details. Example: WP Mail SMTP
wp_mail() uses PHPMailer by default, a sophisticated PHP class which offers a lot of useful preprocessing and workarounds for cases where
mail() is too simple (UTF-8 encoded subject lines, attachments and so on). Just take a look at the bug tracker to get an idea about the complexity of these tasks.
wp_mail offers some hooks for other plugins to change different values:
'wp_mail_from_name' use case
'phpmailer_init' (an action)
In short: Use
wp_mail() for interoperability.