With respect to game design and mechanics, why is there such an emphasis on the last-hit mechanic in DOTA-like games? Why was last-hitting selected as one of the primary reward pathways? It seems kind of arbitrary that the last person to hit something should get disproportionately rewarded for the kill in this way.
Last hitting is a way of rewarding a player for killing a mob, and we still need to give out that XP or wealth. So what are the alternatives?
I see two obvious, simple ones: per-hit rewards, and divvying up the rewards at death based on the share of the damage done.
Continuous per-hit rewards
You could give out a reward for every hit on a neutral mob. For XP rewards, this is quite realistic, but potentially unbalancing and likely not fun.
In a DOTA-like game, you want the neutral mobs to be hard to kill (so it doesn't just become a racing game), and you don't want the majority of them to be terribly dangerous, since the match winner shouldn't usually be decided by whom the neutral mobs kill.
Regeneration and healing powers for the mobs can help significantly there...but if each hit rewards XP, beating on a healing mob continuously (without ever killing them) might be the best strategy. It's also boring. And it doesn't feel very heroic, either.
For wealth rewards, all of that applies, plus it isn't very realistic: you'd expect one of the two teams to get the reward, and the other to be denied the reward when it's time to rifle through the mob's pockets for loose change.
Divvying up the spoils
Alternatively, you could divide up the spoils among all attackers when the mob dies...but that's difficult to do fairly.
Consider the situation where one player has been hitting on a mob for about five minutes, and the mob has been healing almost faster than they can do damage, so they've done damage equal to five times the monster's total health, but the monster is still at 90% health.
Then another player with higher DPS comes along and kills the monster.
Now answer the question: who deserves how much of the XP reward? The player who did 500% damage to it? Or the player who did only 90% damage to it, and actually killed it?
You could say "each HP healed should take away some of the reward from the person who damaged it", but if two players are both beating on the same mob, and then it heals, whose damage to the mob was healed?
Not only would it be hard to balance the reward formula, it would also be hard for players to understand the reward formula, and optimize their actions to maximize their (or their team's) reward.
Advantages of the last hit model
In contrast, last hitting gives the player an easy way to understand what's going on in the game: if I kill the mob, I get the reward, if they kill it, they get the reward.
It also keeps the tension on: beating up on a mob could become repetitive, and, if your reward is guaranteed based on how much damage you do to the mob, it's not a very tense situation, beating on the mob will give you some reward, regardless of whether someone else challenges you. Plus, as the mob gets closer to death, the tension drops, because there's less of the reward left for an opponent to steal.
The last hit model, on the other hand, raises the tension as the mob's HP drops, because you have to be sure you won't have the kill stolen by an opponent. Any repetitiveness in waling on the mob is forgotten, because you aren't actually looking at the mob very much, you're busy scouting to ensure you're going to get the last hit reward, and not just preparing a reward for some enemy crouching in the bushes.
Bottom line: last hitting is easier for players to understand, easier for coders to implement and balance, as well as more engaging for the player...so it's not a model that I see going away any time soon.
Its a legacy feature from how the first mobas appeared.
Most modern mobas are based on DOTA which was a warcraft 3 custom map. The last hit mechanic was part of the way warcraft 3 played. The modern mobas have just not had a chance to revise this game element (if they have they choose to keep it the same).
Taking league of legends for example...(Which is a DOTA-like game)
The point is to push lanes to ultimately destroy the nexus, right? This is done by killing enemy minions to push your own forward. Minions giving gold on last hit is a good incentive for players to last hit them. Otherwise the game would be a team deathmatch.
Also, last hitting exists so people don't push too hard. The mechanic forces us to do other stuff in lane until a creep is low enough to be last hit during the early game. This way, not everyone is pushed and open to ganks.
Regarding killing players, or non-AI..certain heroes/champions are meant to get more kills then others, as they can make better use of it. Therefore, teamwork can ensure that the correct person last hits.
Last hitting has been a part of the original DOTA so therefore it's pretty reasonable that it was kept in future MOBA games as it's a huge part of what MOBA is about.