PowerShell does not cover item-level operations, the only thing you can do therein is run Search-Mailbox report, which will feature the "read" column. Via the Graph, you can query the status of the message directly, and you can also use EWS to the same effect. All of these methods give you the current status of the message though, meaning the user can very well have read it, and marked it unread, but you will not be able to tell.
You can tap into the Audit logs and gather each individual MailItemsAccessed events, but that requires Advanced Audit SKU. On the plus side, it allows you to search directly against the message id:
Search-UnifiedAuditLog -ResultSize 5 -StartDate (Get-Date).AddDays(-1) -EndDate (Get-Date).AddDays(1) -FreeText "<******@AM0EUR02FT043.eop-EUR02.prod.protection.outlook.com>"