You're making the common mistake of viewing Pokemon types as physical things, when what they really are elemental energies that react to other elemental energies. Water-type energy reacts negatively to Grass-type energy, so Water type Pokemon are weak to Grass attacks.
Since type match-ups are just elemental interactions, they don't have to make sense.