How to make a player drop an item when hit
Solution 1:
You could have them via command blocks equip a piece of armour with half a hitpoint on it, so when they get hit the armour breaks, this could trigger the "clear" command to remove the item, and then spawn @players feet the item in question
Solution 2:
You can delete the item there holding if they get it, and you can make them drop the item if you know what item there holding. To do this you need a scoreboard objective testing for when they get hit,
/scoreboard objectives add damage stat.damageTaken
Then in command block do,
/testfor @a[score_damage_min=1]
Then a comparator coming out of that into a command block do,
/replaceitem entity @a slot.weapon.mainhand air
Then with a repeater coming out of that into a command block,
/scoreboard players reset @a damage
Though if you know what item there holding add before the scoreboard reset do,
/execute @a[score_damage_min=1] ~ ~ ~ /summon Item ~ ~ ~ {PickupDelay:60s,Item:{id:"minecraft:grass"},Motion:[0.2,0.5,0.2]}
And replace "grass" in minecraft:grass
with the item you want dropped.