The main differences are in enemy health/accuracy/agility, amount of loot found and the cost of EVE for using Plasmids.
Medium is essentially a 'normal mode' since enemy stats are at 100% there.
Easy is a huge step down from Medium in difficulty for some reason. Enemies drop 60% of their health and 82.5% of their damage on Easy, compared to Medium! Plasmids also cost much less EVE to use. Death is also pretty generous here, and that's explained at the bottom of the quote. Basically instead of dying you drop to 1 HP and you only die if you are hit again, while you still have that 1 HP.
Hard of course makes enemies more difficult than medium, and Plasmids cost more EVE to use.
Official stats:
On Easy difficulty:
Enemies have 40% health (e.g. a default Thuggish Splicer has 40
health, and a standard Bouncer has 1100 health).
Enemies only do 17.5% damage (e.g. a Pistol shot only does 3.5
damage!).
Enemies are less accurate and less agile.
Plasmids cost 50% EVE (aka half as much) (e.g. Enrage costs ~ 15 EVE).
Random loot is more generous.
On Normal difficulty:
Enemies have 100% health (e.g. a default Thuggish Splicer has 100
health, and a standard Bouncer has 2750 health).
Enemies do 100% damage (e.g. a Pistol shot does 20 damage).
Enemies possess standard accuracy and agility.
Plasmids cost 100% EVE (e.g. Enrage! costs ~ 30 EVE).
Random loot is standard.
On Hard difficulty:
Enemies have 155% health (e.g. a default Thuggish Splicer has 155
health, and a standard Bouncer has 4263 health).
Enemies do 150% damage (e.g. a Pistol shot does 30 damage).
Enemies are more accurate and more agile.
Plasmids cost 130% EVE (e.g. Enrage! costs ~ 39 EVE).
Random loot is less common.
On Easy and Normal difficulty, the player will not die instantly from
a "fatal" injury; instead their health will be reduced to 1, and
they'll only die if they take 1 more hit. For example, if they only
have 20 health, and take 30 damage, instead of ending up with -10
health (i.e. dead), they will still be alive, with 1 health.
Source