The only time to use skull-bash offensively is if the opponent is screwing around long enough for you to fully charge it. Otherwise, it should only be used as a recovery.
If they're screwing around and letting you fully charge it, there's a good chance they'll shield it and get a free punish while Pikachu is lying on the ground taking a nap after the attack is done.
I like using Skull Bash offensively though. Just always uncharged. For reads and mix-ups. One easy read is if you think they might roll away, shooting off a Skull Bash can encourage them to roll away... only to get hit by Skull Bash anyway because it has a longer range than their roll. Another way of tricking people to get hit is if you're running away to the right and your opponent is chasing you, suddenly using side B to the left catches people off-guard all the time. It can also be effective at catching people off-guard if you aim to just barely hit the tip of their head or the lowest part of their feet. Not sure why that is, probably because they don't know how to time the shield or they don't think you're actually trying to hit them?
And if your opponent isn't good or just doesn't know how to react to unusual strategies, you might be able to spam side B. That's pretty fun.
Oh, I also like using it to bait. I'll Skull Bash over their head for a recovery when Quick Attack would probably be better/safer, but I plan it out so that I should be able to act again before they can get to me. They'll think they get a free hit because I was sloppy with my recovery, but actually they just end up running into a bair or something while trying to punish. Do people think Pikachu's side B leaves him helpless or something? I'm honestly surprised by how often this works for me.
But yeah, even vanilla Skull Bash can do a lot of great things. If you're only using your Skull Bash for recoveries, you're not getting your money's worth.