The version exclusive Pokemon in Ruby are: Seedot, Nuzleaf, Shiftry, Mawile, Zangoose, Solrock, Groudon.
Version Exclusive Pokemon in Sapphire: Lotad, Lombre, Ludiculo, Surskit, Masquarain, Sableye, Seviper, Lunatone, Kyogre.
Emerald doesn't have: Surskit, Masquarain, Meditite, Medicham, Roselia, Zangoose, Lunatone and Deoxys Normal Forme.
To be honest this was a little confusing and long to list so source: http://bulbapedia.bulbagarden.net/wiki/Game-exclusive_Pokémon#Generation_III
Game Differences:
Ruby:
You defeat the Evil Team, Team Magma.
You capture Groudon.
Sapphire:
You defeat the Evil Team, Team Aqua
You capture Kyogre
Emerald:
It contains the Battle Frontier.
You catch both Kyogre and Groudon and then at the end Rayquaza!
You battle against both the Teams, Aqua and Magma.
I suggest Emerald, more story, more intense battles against the evil Teams and MORE INTENSE POST-GAME BATTLES, at the Battle Frontier! From what I've heard, Battle Frontier is fun and has special rules of battling which depends on each building.