Browser redirects (like a javascript redirect) show as referrals. Not true for server side redirects.
A server side redirect (htaccess or via the domain registrar) shows up as whatever channel the original referrer to the requested page was, so it could show up in any channel.
Ex.
Page a is 301 redirected to page b.
A clicked link on site x to page a will show up as a referral visit from page x to page b
A search result for page a will track as an organic search.
A direct visit to page a will track as direct.
Makes sense if you think about it. You wouldn't want a rebrand of your site to eff up all your attribution data for ongoing references to the old site. And it would make a total mess out of canonicalizing your site versions (i.e. Redirecting www to non-www) if it called them all referrals!
If you need to know which redirected domain sent the traffic, use utm parameters when you set up the redirect.