Honestly, I don't see how this could really work well for the amount of SPAM and Phishing most orgs get.
If you don't have it licensed , https://learn.microsoft.com/en-us/office365/servicedescriptions/office-365-advanced-threat-protection-service-description, it might be worth considering and let it do all the work for you.
Having said that, your error is because the recipient column in that csv needs to be extracted from that csv.
Assuming your column in that csv for the mailbox is "RecipientAddress"
Something like :
$Recipients | % {New-ComplianceSearch -Name "Spam-Phishing.$date2" -ExchangeLocation $_.RecipientAddress -ContentMatchQuery 'sender:"*@keyman .com"' }
Note that using the sender as a query filter will probably include a lot of false positives.
Also, since multiple mailboxes will prob be passed in the -ExchangeLocation field, you will need split those out and put a comma between the mailbox names.
See https://social.technet.microsoft.com/Forums/office/en-US/556517cb-f135-4587-80f2-deba7d1d34c9/importcsv-with-a-column-that-needs-to-be-multivalued?forum=ITCG
Bottom Line:, In my opinion, the compliance search command is not a good incident response tool for phish and SPAM given the amount of messages that you will potentially be searching for and handling. I would look at the built-in ATP features.