I don't fully understand why this is a mystery to some people, but it somehow is. Still, I want to talk about it because there's a point to be made regarding 3d and color, and I will only touch this once.
Leon is a 3d character made for games and CGI animations. He's not a real person with real, actual hair. 3d tries to imitate real life, but it's absolutely not the same.
We should compare him with other characters. Hair colors don't exist solely in a vacuum. They are inserted into a context, and our brains adapt to the context, optical illusions happen because of that.
In 3d, many things can influence the resulting color on your screen. That's why I believe comparing his hair with the rest of the characters is effective. These characters are being rendered together, in the same light, same rendering technique, with the same possible color filter over them. If you look at a screenshot of a character with a blasting hot, warm light and a filter, it will skew your perception. That's why having other characters will give you a valuable reference point. You know what black hair is, you know what blonde hair is, so that helps put it into perspective. If he's not sharing a scene with both characters, we can draw comparisons to other characters. If character 1 is blonde and character 2 is brunette, even if Leon isn't standing by 1, if you compare him to 2, you have a reference point, then you compare 2 to 1 and draw your own conclusions.
So if we compare him to every other character of the game or cgi movie he's in, Leon's always in the middle of black and blonde, which is... brown. It's even clearer how brown his hair is when he's next to a blonde character. While he does have a lighter brown than other characters, it's still brown.
If anything, ripping the 3d models and looking at their base textures will tell you the base color the artist planned for him. Which from all the models I've seen, it's brown, but if you want to argue for a dark blonde in some specific cases, I'll still disagree, but it's your free will. You want to headcanon him as blonde, you do you. But if you want to argue he's canon blonde, you better have a really solid argument.
And yeah, I know I made a post about the technical part behind Re4make, but I'll still include this:
His hair, even in the most blonde looking game of all time, still has a considerably darker shade than Ashley's. There's a video of the models testing the hair physics rendering time in the RE engine, and look how darker his hair is compared to Ashley's. I also ripped the models from the game and put them side by side:
Look me in the eye and tell me this isn't brown.
All that said...
Capcom doesn't care, look at all the colors Claire had, or how Chris mutated his eye color every now and then. Capcom isn't the best when it comes to consistency, but it's still funny seeing how they make his hair brown in almost every single game and movie, but one singular game convinced the entire fandom he's blonde (I admit RE6 had an influence too). From his concept art to DI, he always had brown hair. If Capcom planned for him to be blonde, they really failed when they released a movie months after Re4make with his hair back to brown.
But listen, I know, it's Capcom. They'll retcon Leon's hair to blonde if they really want to. They really liked hair strands, so there's a high chance they'll come back with the same shading issue in RE. But don't you dare tell me he was always blonde. A retcon is still a retcon.