Parece que o problema é \(
é interpretado pela shell primeiro.
Por exemplo, você tem um arquivo no diretório atual chamado:
foo(.test
Então
ls foo\(.text
e
ls "foo(.text"
ambos funcionam.
Então, os seguintes trabalhos:
find . -regex ".*submit\(Web\)?\.m"
EDITAR :
Aspas simples também funcionam aqui.
Diferença entre aspas simples e aspas duplas, consulte esta postagem: single citação vs citação dupla na bash