Você pode adicionar --color=always
ao seu grep.
Seção relevante da minha página de manual local:
--color[=WHEN], --colour[=WHEN] Surround the matched (non-empty) strings, matching lines, context lines, file names, line numbers, byte offsets, and separators (for fields and groups of context lines) with escape sequences to display them in color on the terminal. The colors are defined by the environment variable GREP_COLORS. The deprecated environment variable GREP_COLOR is still supported, but its setting does not have priority. WHEN is never, always, or auto.
Como esta pergunta no SO sugere, provavelmente você tem um alias para grep
que mapeia para grep --color=auto
no seu .bashrc
e que não é lido pelo script e, portanto, não é aplicado no script.