The DeathLootTable
string tag can modify which loot table the mob will use when killed. The "empty" loot table will cause it to drop nothing:
1.12 and lower:
/entitydata @e[type=Zombie,r=40] {DeathLootTable:"minecraft:empty"}
1.13:
/execute as @e[type=zombie,distance=..40] run data merge entity @s {DeathLootTable:"minecraft:empty"}