It sounds like you are substituting one word for another in the contents of the file, not the names of the file. That is, you aren't just renaming them, but editing them. Right?
Here is the way I think I would do it:
find . -type f -name �*.txt� -exec sed -i 's/Ontem/AntesdeOntem/g' '{}' \;
The -exec switch for find is kind of odd in that you need to terminate it with \;. It's just the way it is.
The -i switch for the sed command means to modify the files instead of printing the change to stdout.
Probably your sed version doesn't support the -i option. Use a temporary file, and if you don't have to search in underlying directories you can avoid the use if find:
#!/bin/bash
for file in *.txt
do
sed 's/Ontem/AntesdeOntem/g' "$file" > tempfile
mv tempfile "$file"
done
echo "done"