Hockey players get paid to entertain. If a player is paid to play hockey, and hockey is sold as entertainment, fighting will always be a part of the show. 

With the emphasis on youth, skill and speed, many current hockey players, non fighters, will find they have a short 3-5 year earning window. Lots of team turnover too. Today's Fighters have also evolved and have moved beyond the merely entertaining role. Those seen as " character guys " are expected to play an important  role within teams. A guy who protects the younger players, mentors them on the subtleties of being a young pro athlete and sets the tone in the room.   Fighting, although less often, (and still paid good money to do this even after their skill decline) buys them credibility and status with the other players. The fighter is seen as the big brother in a den of impressionable young men. Fighting is a job.