'Normal' email is pretty straightforward, but sending email from a website is not. Add in subscriptions, repeating emails, and mailing list segmentation and things soon start to get a bit head-twisty.
One way to send the same email to lots of people is to stuff a big list of email addresses into the 'To' option. This doesn't always work as some mail servers will check all the email addresses and reject the whole process if one of them looks wrong. As a developer, sending emails from a server is essential for things like user account authentication. For marketing communications it also allows for personalisation, open rate analysis, permissions management, and so on.
The main purpose of mailings list for me is being able to send a single email to some or all people on a list, and to be able to add new people to the list and 'resend' with the message only ever being sent to each recipient once.
Subscriptions to me are for specific, repeat emails as opposed to more general permissions. Individuals can create a subscription to events or other structured data, and set preferences - like a delivery frequency of daily, weekly or monthly.