Is there a report or any other way to see which emails each lead in an engagement program has received?
I don't think there is an out of the box solution, one way I do it is via a Smart List, my setup looks something like:
Basically I add Member of Engagement Program and put my Program and Stream (not required but will make list faster) in, then use Was Sent Email (Was Delivered Email works too and could be stronger), repeat for each Email, this will report on what leads was sent each email.
Frank's solution will work great to show you a list of leads that have been sent a specific email. But if you would like to see which emails a specific lead has received then you can navigate to the Lead Details > Activity Log > click the "Email" filter" and search for that engagement program. This allows you to see which emails a specific lead has received.
Retrieving data ...