According to the Microsoft's diagram in the Hub-spoke network topology in Azure article, Hub network and Azure Firewall are shared between production and non-production spoke virtual networks.
Historically, I have separated prod with non-prod resources. It is not clear to me why I would not do that for a Firewall, aside for cost.
Assuming there is no cost factor for Azure Firewall, is there a reason why I would not want to follow the design in the article and have a separate Hub/Firewall per environment?
Thank you

There are no strict technical constraints that prevent you from having separate Azure Firewall instances for each environment (production and non-production). Here are the main points to consider- If you have a Shared Firewall
If you have a Separate Firewall
The decision between a shared versus separate Azure Firewall setup should be as per your organization's operational and compliance needs.
References: