Let's assume point buy, because forcing standard array is dumb -- I guess some people use it because they think it reins in power-gaming, but IME it just pigeonholes optimizers into more samey race/class combinations even more than fixed racial ability bonuses already do -- and if you're rolling stats you've thrown balance out the window already.
Both variant human and half-elf will probably most often start with a 15,15,14,10,8,8 spread before racials. (Other combinations are obviously reasonable too, particularly for those wanting to take a half-feat, but this is the one that I think gives half-elves the biggest advantage, unless you think that +1 in your fourth and fifth stats is worth more than +1 in your second, which I don't)
For a class that wants 16 CHA to start, half-elf gets two possible stat advantages over variant human: they can either start with 17 CHA in order to get Actor at 4th without falling behind in CHA boosts, or they can start with 16 instead of 14 in their third most important stat (probably CON).
They also get darkvision, one extra skill, charm resistance, and one extra language (in decreasing order of value, IMO, though in some campaigns maybe the skill is worth more than darkvision).
So, then, the question is, is +2 CON, darkvision, one skill, charm resistance, and one language equal in value to a feat? Clearly if you would consider putting an ASI into CON, then this is better, but most people playing CHA classes aren't going to do that. If I think about the CHA characters that I've played, I don't think that package would rise to the level of the top few feats that I'd want.
And obviously for a non-CHA class, half-elf gets even less, since instead of +2 CON, they're just getting the +2 CHA, which is probably a dump stat.
So, it seems to me, from a purely mechanical perspective, variant human is still better in most cases, except for those who really want Actor. Half-elf gets a bit better if you're forced to use standard array, since then their stat boost can be in your second or co-prime stat instead of your third, which is especially good for paladins and weapon-using bards. And if you have rolled stats with a 16 or 18, then you really want a race with +2 to your primary.