I'll admit Ahri v Zed is more a skill match up, around 55-45 in Zed's favor.
The obvious point is Energy vs Mana. If my jungler shows elsewhere he can just shove me and either I push back and be low mana and not lose cs or attempt to cs under tower vs W > Q harass.
The more minute details are; Ahri's Charm has a cast time, .5s I believe, so if Zed ults I can't pre-cast my CC behind me since that turns me around. When Zed ults, my options are: Charm when he comes out of it, which can be frustrating to do the last point. Ult to bring him under my tower, then try to charm and hope me + tower is enough to kill him, though it usually ends in a kill trade which is better for Zed. Or just Flash away and hope he didn't get his combo off on me. Also, Ahri's Charm is her only defensive option without ult, and before 6, it has a huge cost, in both Mana and Cooldown so if he wants he can W > E > Q > W auto and win that trade, guaranteed.
These complaints were Season 5. It's worse in Season 6.
New to this patch is Duskblade. It gives everything an assassin wants, between an assload of AD items in this season since 75 AD is more than most items now. 10 ArPen and 5% MS is more than just dandy on top of it, and then the passive is just another Zed ult, so either his ult amps Duskblade or Duskblade amps his ult. Further in to this, AD itemization in S6 is just too damn good with all this flat Armor Pen flying around. I know they're trying to compensate the fact that they nerfed Last Whisper, but buying Seeker's now just feels so bad when I know AD assassins, not just Zed run Precision for flat pen there, on top of 10 from Serrated and it's items (Or more!) so just Duskblade + Youmou's is 30 Flat pen right there where I'm likely to have ~70 Armor around that time. Among this is Hexdrinker which gives amazing stats (which builds into MORE ARMOR PEN) for that early for 1300g and a great anti-burst passive so of Zed opts to rush it, on the off chance I catch him that early, it definitely won't be a kill where it likely would have been on me if he had caught me.
(I actually started running a Rune page with 30 flat Armor + 15 from Cloth so I walk into lane with about 67 Armor at level 1.)
This problem is amplified by the piss AP Itemization Mages have been left with in S6. The Seeker's buff this patch was nice, but not nearly enough to justify the huge cost on Zhonya's. To be honest I wish Riot would remove Zhonya's in lieu of better AP defensive items, especially if it's as game-warping as people claim it to be.
The typical strategy for dealing with assassins early is, since they're melee, is to constantly harass them via autos and the occasional spell if you can afford it. Zed says fuck that, fuck you, I'm an early game champ. W E Q (maybe double Q) is MORE than enough to chunk your average mid laner for half or more without much to offer in the way of retaliation if he did it over minions. Best Ahri can do is hope for both ends of Q and an auto for a Thunderlord's proc and you still lose the trade.
For a while now I've opted to run Exhaust over Ignite for AD mid laners, but I still typically barely live his all-ins whether I get a kill or not. All the while he's incredibly hard to gank. Like, you HAVE to bait his all-in with your jungler in the wings waiting.
I always feel like it's his lane to fuck up, not mine to win. Which is the case with a lot of these huge outplay champions. (See: Yasuo)
TL;DR Age old Mana vs Energy, a lot of nuances with Ahri that are easy to fuck up vs Zed, AD itemization is too good, Zed breaks the mold with AD Assassins.
Sorry about the rant, and I realize the first part are mostly me problems.