Every eCommerce platform contains native functionality for sending a welcome email after creating an account and Magento is also doing the same for sending Welcome email.
When you click on Create an Account button from frontend or create an account from Admin panel.
Both the events send mail to a customer after successfully create an account.
Magento 2 send Welcome email from the Magento/Customer/Model/EmailNotification file.
public function newAccount(), a function is responsible for sending Welcome email after a successful registration.
Above function first check, Email transaction account template is set or not, if email template not set throws error.
You can set Custom email template for Welcome mail from the,
Stores -> Configuration -> Customers -> Customer Configuration -> Create New Account Options -> Default Welcome Email
Default template is, New Account(Default).
if the email transaction template is set, the function will send mail using sendEmailTemplate() function with new account-related information.
sendEmailTemplate() is private function defined under EmailNotification class.
If you want to disable send customer welcome email, you can create an around plugin with aroundNewAccount() method with required arguments and return the $subject so your welcome email will be not sent from Magento.