I'd have preferred if this was taken to the
FAQ thread, but...
Sonic is actually more commonly played defensively, which I'll touch on later. He's not a true rushdown character at all, and only appears that way if the Sonic is of a very high caliber or higher caliber of their opponent. Also, of course Sonic has weaknesses... Most people don't take the time to recognize them though. More people complain about a character that isn't even top 5 yet they just are okay with half the cast having Hoo-Hahs and the like. This isn't to say Sonic still isn't a top character, but some aspects of his character are severely overhyped.
Sonic himself not having a projectile isn't necessarily inherently bad. It doesn't help though, as a lot of top tiers have them like Diddy's bananas, Sheik's needles, Rosalina & Luma, Luigi's fireballs, ZSS stungun, Pikachu's thunderbolts, etc…
Spring is great but is a completely different projectile fundamentally so we can't really count that as a projectile (it's not used for zoning, spacing, etc.) We actually forfeit stage control by using it since it puts us high above in the air, which is somewhere you never want to be in Smash 4, especially when your landing options aren't great, which is a weakness I will also get to. Spring is only great for edgeguarding or temporarily getting out of a situation, but can sometimes lead to a harder punish based off the reasons I just mentioned.
KO power isn't so much a problem (besides the Bthrow nerf RIP) but his set-ups still are lacking. Better than Brawl, but aren't as free or safe as others (Hoo-hah, bouncing fish, Luma, Luigi Dthrow, etc.)
Ultimately, Sonic's problems lie in his approaches and landing. With the spring autocancel distance heightened, it's hard to safely spring and dair to the ground without it being easily baited and punished. We lack moves that put a hitbox below us that autocancel, so falling nairs are okay but we have to basically fall into you which leads to us getting shieldgrabbed.
Approaching is difficult against zoner heavy characters. Getting walled out is brutal, despite popular belief. For bad projectiles (Samus) then yes, Sonic is "2 fast" and can get through walls easily. But GOOD PLAYERS with GOOD CHARACTERS (like Rosalina and Luma or Olimar and Pikmin) can make approaching hell. We have to approach, or just hope you mess up and we can run and punish. Sonic's game is primarily punish based, so if you're just creating SAFE walls, then Sonic is in such an awful situation. Sonic's approaches only seem great if you're pressing buttons from across the screen for no rhyme or reason, as Sonic has easy, let's say, auto-punishes, because we can get there in a second whereas most characters don't have a response to people pressing buttons from the opposite side of the map.
It takes a huge understanding of yourself, the player, and the match-up to actually be aggressive and break down good walls. Sonic requires reads so heavily that a scrubby Sonic can get shut down easy.
Scrubby players will lose to mediocre Sonics because they can't handle spins, but spins themselves aren't that strong. It's the mix-ups and options that come with them that make him good, when utilized by a smart player who avoids patterns but finds yours.
At the end of the day, Sonic has to be in your face to do anything. His speed and lack of commitment to approaches leads to a heavy bait-and-punish playstyle. It's not true rushdown like Diddy or Sheik who can safely poke just out of range while also pushing you out.
There are benefits to spins as their shield pressure and mix-ups on shield are safer from Brawl, but with the damage nerf, more things clank with spins and they do less damage so it's even more work than before. The only true buff that spins got at all from Brawl to Smash 4 is that due to the change in engine itself, Sonic's spins have more shield stun making them harder to respond to. The only additional mix-up on shield we gained is the slow, multi-hit spin roll. This is the sole reason for spins being better. Other than that, they've literally been nerfed in every other way or remained exactly the same. Sonic being remotely good was completely unintentional from a programming perspective.
Sonic really just resets neutral a lot, and while this is annoying, it's not particularly amazing either. It doesn't inherently put us in an advantage if we're not gaining ground either… At that point, it becomes more of a battle of frames and reactions.
This is also why characters like Fox are very good against Sonic, as Fox totally wins the neutral game, so if all we're doing is resetting neutral, we're putting ourselves in a bad position.