As a regular Socal tourney goer who mains Zelda, I'll give my 2 cents on what holds Zelda back from top tier.
Warning, this post is going to be long.
As it stands, most "tier estimates" or character rankings are still putting Zelda too low. She's not going to ever be a top tier character in Brawl, but she's certainly higher than many players give her credit for. For all her advantages, she's not very popular and unlike other characters who have slipped of the radar a bit (Toon Link, etc), she never had that initial popularity or hype at the start of Brawl's lifecycle to get people to notice just how good she is.
Since many people have already gone over her advantages, I'll talk about what keeps her from being the next Snake or Meta.
With Zelda, all of her advantages and disadvantages are extremely distinct.
To her advantage is an excellent ground game due to high priority moves that have hitboxes off of her body. She's also got a decent projectile that's good for keeping pressure on, tech chasing, trading hits, etc. Plus her air-game, when sweetspotted (or below an opponent) is very powerful.
Her disadvantages are equally as apparent. She's weak whenever above anyone, the only exception being if she's going for a situational spike. Her air game has to be sweetspotted, meaning any character with a decent aerial game is going to win in the air most of the time as Zelda needs to get real close to a character to sweetspot them. Her recovery is also an issue. While trajectory is not a problem with mastery, the lack of control once Farore's has been initiated can often lead you open. If an opponent is good at edgehogging in Brawl, Zelda is in trouble. As she can still get edgehogged with correct timing and if she lands on the stage she's often left open. Not to mention that her speed and aerial game hurts her ability to approach well.
On to my main point,
What holds Zelda back is the fact that her slow speed and floatiness make it extremely hard to make up for her disadvantages. A fast character can use their speed for mindgames, but Zelda's movement is slow and many of her attacks commit her to a move for a long period of time (let me clarify, it's not that I'm saying her moves are laggy, but that their duration is long because Zelda holds the attack out for multiple hits).
This leads to troublesome matchups against opponents who can either
1.) Ruin her projectile game either by outcamp her or having a reflector/bucket/absorbtion, thus forcing her to make the approach.
2.) Who can bypass her high priority hitboxes.
I'll use a couple of examples
G&W for instances has attacks that qualify for both. His bucket makes it so that using Din's to force the approach isn't a viable option (although Din's can be used situationally). He can also bypass Zelda's highpriority/offbody hitboxes. His d-air goes straight through Zelda's upsmash and his b-air can puncture Zelda's f-smash from the right aerial angle (I need to double check on G&W's b-air, but I'm pretty sure).
So in that matchup, G&W has killed Zelda's ability to force him to approach, she already has a weak approach, and he has move options that let him bypass Zelda's defense game.
The lack of Din's isn't the worst issue, but other character's ability to bypass Zelda's hitboxes. I'm not saying that Zelda is a 1-trick-pony, but that she relies heavily on her advantages (priority and range) because her speed/floatiness/approach game makes it very difficult for her to compensate for her distinct disadvantages.
Another example is Snake (this is an even matchup, unlike G&W). You can force the approach with Din's, but the problem lies in your hitboxes. If Snake spaces himself correctly, he can bypass the first half of Zelda's f-smash with his running-A. This works because his odd hitbox can penetrate the weak hits of Zelda's f-smash and stop her attack (keep in mind Snake has to do this in the first parts of Zelda's attack).
Problems for Zelda with hitboxes and range dependency comes from two types of opponent attacks
1.) Certain Fast attacks, which penetrate Zelda's f-smash (her longest range attack). Mostly running-As.
This works because they can stop Zelda's smashes by "passing through" (they still take damage) her hitbox and hitting Zelda to force the smash to end. This is what I was describing with Snake. With a move like Zelda's f-smash (this is true of her upsmash as well) only the final hit does knockback.
This means that not only can opponent DI out of her multihit smashes (this is harder done than said), but quick moves can pass through the multiple hits.
Now with the up-smash there are very few moves that can do this (actually I can't think of any). That is bypass due to speed along (possibly TL or G&W's d-air, but that's debatable, this could be a mix of speed and their hotbox).With the f-smash what happens is a character still takes the damage from the non-knockback hits of the f-smash, but still penetrates through and hits Zelda. Granted there are only a handful of characters that can do this. Metaknight for example can with his running A. He can run up and dash attack to stop your f-smash.
Keep in mind though that most dash attacks that can do this, can't from the very tip of Zelda's hitbox. Meaning if Zelda is already doing the move they can't bypass the whole thing. They'll eat an f-smash. But from certain ranges they can stop Zelda's f-smash, even though they should be getting hit (well they are getting hit by their attack penetrates and stops the smash as they get hit).
2.) Characters who have hitboxes that come off their bodies screw Zelda's priority and range.
To clarify, "off the body" refers to something that is not the opponent's body, like a weapon. Something that can do damage, but it's vulnerable. G&W's turtle (I believe his key works the same), any swords, etc.
The problem with these attacks and the characters who have them is simple, since the hitbox isn't the opponent it can pass through and stop Zelda's smashes during the multihit part.
My conclusion brings me back to my main point, when Zelda is against characters who gimp her advantages, she has an extremely hard time making up for them. Her offensive game is somewhat weak, so moves/characters that gimp any part of her defensive game can easily end up being her downfall.
On a different note... I know this is a Zelda discussion, but it should be said that Sheik does fill in for some of Zelda's disadvantages. As said before, it's a common perception that Sheik's need Zelda to kill, but that many Zelda players don't feel Sheik is necessary. I'd disagree.
Ignoring the tactical advantages of using Sheik instead in a matchup that's bad for Zelda, the fact that knockback can be refreshed by swapping back and forth is ultra valuable. Zelda has a ton of kill moves, but oftentimes you have to decay them in order to get damage, making it hard to kill characters who aren't light. Refreshing your knockback does wonders, as basically any of Zelda's moves will KO any opponent at 120% if you hit an opponent away from the center of the stage if there's no decay.
It's important to rate and discuss both Zelda and Sheik and individual characters, but together they are a whole lot more powerful. Sheik's character ranking will always be low due to inability to kill at decent percent without gimping recoveries, etc. But swapping to Zelda after 100% is usually easy and almost always gurantees a kill by 120%. Zelda is held back by...well you read about this already. But Sheik lets Zelda cover bad matchups, so that when you are playing as Zelda you only need to land a few solid hits to gurantee the KO.
While I still don't think they'd be a top tier contender, if they were listed together they'd probably be fairly high on the tier list. Zelda/Sheik should be listed as the sum of its parts. IE... ranked with the assumption it's a high level player who uses both characters at high level and chooses which one strategically.