In my professional opinion a public email address or website should not have any kind of separator in it’s name.
The are exceptions, for example, if my name was Tim and I had an export advice blog I wanted to share with the world, Tims Export Advice becoming timsexportadvice.com may be inappropriate. So possibly tims-exportadvice.com could work. But in reality, I’d look first to rewording the domain name before adding a hyphen.
Purely from a social marketing point of view, if someone asks for my website address, and I have to say “hyphen” or “underscore”, that’s two to three extra syllables and additional information for guy to remember. It also takes longer to say, and if it’s the last thing you say to your client before heading off, it’s likely to cause a delay.
Emails are the same. I have worked for companies that use a “full-stop” or “period” to separate their staff’s firstname and lastname. E.g. email@example.com or firstname.lastname@example.org but in a corporation your less likely to send an email to an individual and more likely to send an email to “support” or “info” or “jobs”, etc. I personally apply the same principles – how easy is it to remember? How easy is it to say?