So in D&D-derivatives combat generally involves two rolls: an attack roll and a damage roll. The result of an attack roll is a simple success, failure, or a critical hit (which doubles the damage dealt). The result of the attack roll otherwise has no affect on the damage roll.

Why not remove the damage roll and have the damage be determined by the attack roll? Are there any popular optional or house rules to this effect?

The best way to answer the question of "why not?" is to do it.

I've contemplated doing the following with my 1E game:

Damage is determined by how much the hit roll exceeds the minimum needed to hit. Subject to the particular weapon's min and max harm.

For example, broadsword vs S- or M-size creature does 2-8 damage. If I need a 14 to hit, it will do 2 damage on a roll of 14, 15, or 16, 3 damage on a 17, 4 on an 18, and so on. One caveat is I treat a natural 20 as if the die roll were '25' (this is how I simulate the six repeating 20's on the 1E hit tables without ever having to reference the hit tables). So on a 19, the broadsword would do 5 damage, but on a natural 20, it exceeds the number needed by 11, subject to the 8 damage cap on the weapon, so it does 8 damage on a natural 20.

This gives me wood for a few reasons. It saves me a die roll. It creates a bar-bell distribution (anti-bell curve) for the damage result with extremes being more probable than the middle, which I actually find makes more sense than a linear distribution or a bell distribution as it translates more directly into heuristics "light hit, heavy hit, mushy gray". Situational or skill factors that improve chance to hit (thereby decreasing the number needed to hit) come with the implicit tendency towards higher damage. And yet it still allows me to adjust damage independently of the hit roll. For instance, i can still do the x2 damage for a spear set to receive charge by just doubling the damage result. I don't have to go tinkering with the hit probability to make the math work out.

So why don't I just implement this immediately in my AD&D game without giving it another thought?

Well, first is it seems quicker and easier just to roll a separate damage die than to have to calculate the exact number needed to hit* and subtract that from the d20 roll, then double check to make sure it falls within the min/max for the weapon. Second, while I can adjust the damage without affecting the to hit probability, I cannot adjust the hit probability without adjusting the damage. There just very well may be circumstances, characters, skills, or magic items that would logically increase (or decrease) hit probability without adjusting damage in tandem. Like I may wish to distinguish someone who has a high hit probability but crappy damage vs someone who rarely hits but when they do, hold on to your ass.

So even though on the surface it seems to simplify things by saving the extra die roll and it seems more versatile and even "realistic" by making more accurate and highly skilled attackers also do more damage, in reality it makes things less simple and less versatile.

* It's a dirty little secret, but 80% of the time, when someone rolls the d20, it's either obviously high enough that it hits, or obviously low enough that it misses, without having to figure out the exact number needed to hit. Sure. Some people want to calculate that number each and every time. But as a DM, I have so many numbers coming at me throughout the game session that playing it fast and loose like this is a HUGE time saver without losing any fidelity.