The hair color thing can also be thought of in terms of polygenic inheritance, in which the expression of a trait is controlled by more than one allele. So many genes are involved in determining hair color, and it explains why we always see slight differences in hair colors between different people. Often, there are different genes responsible for different portions of the body. We don't have just one gene for hair color. We have multiple that control it, and they're all located on different chromosomes, so when we randomly inherit these chromosomes from mom and dad, we get a huge realm of possibilities in terms of combinations... and because so many genes are responsible for hair color, different ones being responsible for head hair color and beard color, this is why we see slight differences in beard and nose and head hair colors.
And yes, the co-dominance is a big part of it. It's like when we look at certain animal furs, or maybe the coats of cattle and horses that we typically call roan coats. From a distance, the animal looks to be of all one color, say a light gray or a pale reddish color, but if you examine the separate hairs of those coats, you realize that some hairs are white and some are pigmented. This is due to codominance. It's kind of what you're seeing on your head vs. your face. You can see the individual hairs more clearly on your beard because they're so short and are more distinguishable. Of course, this varies from person to person.
I don't want to get too far into it, but hair color is affected by so much sh*t. Epistasis, heterochrony, etc. And then there's evolutionary genetics playing a part in there, too. It's definitely still being researched and it's a huge mess of confusing genetics, but it's really pretty interesting if you ever end up taking a genetics class.