In a hybrid Exchange scenario, mailboxes should be stamped with aliases that are mapped to the tenant unique namespaces (e.g. *.onmicrosoft.com). If a mailbox does not contain these aliases, it will fail to migrate. These aliases are normally applied via Email Address Policies, but if the AD object is set to block Email Address Policies from applying, this won’t work. A quick trick to identify these aliases is as follows (from the Exchange Management Shell, on-premise):
$Mailboxes = Get-Mailbox -ResultSize Unlimited -Filter {EmailAddressPolicyEnabled -eq $False -and EmailAddresses -NotLike "*.onmicrosoft.com"}
Let me know if this works for you in the comments. Thanks!