Within the Eurozone bank transfers are generally free of fees, but banks still like to rip people off on exchange rates between different currencies and the EU doesn't seem interested in doing anything about that.
I think the exact rule is this: International bank transfers denominated in EUR below 50.000 EUR can’t have higher fees than domestic transfers.
FX fees and spread can still remain.