I have set up a retention policy based on the condition of detecting specific words or phrases. I have observed this policy works for all documents in SharePoint and ODFB, however, the policy doesn't work with Exchange Online emails.
What could be the issue(s) here.
How exactly did you determine that it doesn't work for Exchange? Messages matching the keyword should still be preserved, however unlike SPO they are not kept in-place, but moved to a subfolder in the user mailbox, which is not exposed to any of the email clients. In general the process is explained here: https://support.office.com/en-ie/article/overview-of-retention-policies-5e377752-700d-4870-9b6d-12bf...
The message is still available on the sender's sent items and the receivers inbox.