You need to take a close look at your own use case, but for a good initial assessment it is enough to follow the following guide.
ExpressRoute is a dedicated, private connection
Azure Peering Service is an optimized “public” connection type
This means that private connections such as IaaS connections of virtual networks should be solved via ExpressRoute, while SaaS and PaaS applications that are optimized for access from public networks, such as Microsoft 365, Dynamics, or AzureDevOps, should preferably be connected via the Azure Peering Service.
Another difference is that, in contrast to ExpressRoute, there are no additional costs on the Microsoft side, neither for the service nor for the traffic or gateways involved.