Is it unethical to use affiliate links in blog posts without telling the reader? If so, what's the best way to tell him?
It's super common to do. The internet became this place where people just write a story around there affiliate links. It's annoying.
I would be honest about it and say something like Wirecutter does: "Wirecutter is reader-supported. When you buy through links on our site, we may earn an affiliate commission. Learn more". It's a quite prominent line.
It's not just unethical, it's illegal in US, UK, Canada and EU to not disclose it: https://www.shoutmeloud.com/ftc-affiliate-disclosure-bloggers.html
I think it's unethical if your reason for linking is financially motivated, but it's not obvious from the context. In that case you're intentionally deceitful.
If you would have linked to it regardless of the financial incentive (i.e. even if they didn't have an affiliate program), then I'm not sure I'd consider it unethical, but I still highly recommend disclosing it.
I don't tend to use affiliate links because they come across disingenuous even if they are not. In the exceptions I do use affiliate links, I clearly disclose it and often add a non-affiliate link as well so people have an option.