When you drop an item manually, the origin of the item is correctly the person who threw it - however, when you break a tile and it drops items, the origin of those items is not the player (or entity if it's still alive, such as a ghast) who broke the block.
—
Simple setup:
Run
execute as @e[type=item,limit=1] on origin run say @s
in a repeating command block, and break any block with a tool that causes it to drop an item, and the command will not say anything.
If you then throw an item, it works as intended and says the player's name.
I apologise if this is actually intended behaviour and this request is unnecessary, but it seems like it isn't intended.
The origin of items is the thrower, when mined, nobody throws the item.