I am for to hit rolls and preferably damage based on how well you hit. Now D&D used a d20 to determine a to hit roll, I don't like it. It is too random. I've been out of statistics longer than a lot of you have been alive so forgive me if I no longer remember the terms. But a d20 has a flat probability, you are just as likely to roll a 1 as a 20. Something like the hero system has a more bell curve based system since it uses a 3d6 roll. You are frequently going to be rolling in the 8-14 range but the crit rolls or crit fumble rolls will happen rarely. I prefer something like that.
The die roll should be reflected in the game by an animation. Heck Dragon Age 2 uses die rolls, now they removed the ability to miss, but a bad roll got you a glancing blow. While it can be paused for a turn based feel, it is not a turn based RPG it is very action oriented. Now I understand there are a decent number of non-rpg types who get irritated that their fantasy FPS game had some weird miss thing happening despite them lining up the perfect shot, but that is what makes the difference between a shooter and a RPG. Without the to hit roll you have the same massive fail that was the oblivion lock picking mini-game where skill 5 characters could routinely open the hardest locks on the planet. The other option ends up being just as bad I think, you can remove the to hit roll and make the damage based on skill. I am not sure it adds anything to the game to always hit the neck when you want but only hit for 1 point of damage with your 2 handed sword. I don't see that as any more satisfying for non roll types but maybe it is.
Why not have the randomness instead be caused/represented by the particular skills of the player: i.e. a low level swordsman will have a slower swing than a high level one, and as a result will miss more than the high level. That's just one example. You could add numerous affects that are directly related to avatar skill level: power of swing, balance (i.e. recovery time after strike), location of armor on opponent, quality of armor of opponent, speed/agility of opponent, awareness level of opponent (including effects of blinding spells), distance to target/location with respect to target (whilst target attempts to move out of the way), location of where the swing lands (a strike to armor will either glance off or only cause minimal damage, while a strike to an unprotected area will cause high damage), and so on.
There are numerous ways the randomness of battle can be simulated, and some are far closer to reality than others. A sword hitting an enemy in the face and registering zero damage is HORRIBLY UNREALISTIC, whilst a slash to the face that misses because THE ENEMY DUCKS is FAR MORE REALISTIC. Ecetera, ecetera.