Because FormIt sets the placeholder "fi.error.email" to a certain string (the error) or nothing. That’s how FormIt was developed and how its developer intended it to be.
On top of that, you are adding what is called an
Output Modifier to it called "email" which doesn’t exist, unless you created a snippet with that name. You could make it work by creating a
Snippet as the FormIt validators page tells you to, and checking for a the string you want to change.
But the easy way if you just want to change the error message is (imo) to update the lexicons. It will stick on updates and doesn’t need php knowledge.