The target parameter of /damage only accepts one entity, requiring you to use limit=1 or similar. This means that to damage multiple things, you need to use /execute, which has the following consequences:
Worse performance as you are running N commands instead of just one
You can't use the original
@sin thebyparameter: obvious use cases like/execute as @e[type=pufferfish] at @s run damage @a[distance=..5] 1 thorns by @sare impossible
This might be intended / feature request a la MC-121807 (it would be great if that one were changed too :/), but I think there are a couple reasons why this behavior is especially unexpected:
Bedrock's
/damagecommand supports multiple entities just fine/killcan apply damage to multiple entities just fine
I can confirm this issue. It doesn't make sense to restrict only one entity to damage.