A lead can be routed correctly and still sit unworked because the owner never heard about it. The email is a separate step from the assignment, and it fails separately.
1. The rule entry has no email template
An assignment rule entry can notify the new owner with an email template. Entries created without one assign the lead and say nothing.
2. The owner was set by something other than the rule
The rule's notification only goes out when the rule assigns the lead. A flow, an import or an integration that sets the owner directly sends no email.
3. The owner is a queue
Leads assigned to a queue only notify its members if the queue is set to send email to members, and only to the addresses it lists. A queue with no members notifies nobody.
4. Email is limited or blocked
Salesforce can be set to send only system email, or to send nothing from a sandbox. Check the org's deliverability setting, and that notifications are not going to spam.
5. The owner switched notifications off
Users can turn off some notifications in their own settings.
Check it yourself
SELECT COUNT() FROM Lead WHERE IsConverted = false AND Status = 'New' AND CreatedDate < LAST_N_DAYS:2
A high count of untouched new leads, with correct owners, points to notifications. Create a test lead through the form and watch whether the owner is emailed.
Have it checked every night instead.
Routing Forensics connects as a read-only user and checks this, and the rest of your routing, against your real leads. Register interest and you will be first to get a free health report: what is leaking, where, and what it is worth.
The free scan cannot see this one: it reads assignment rules, flows and queues only. Connected, it is checked every night.