Lies mal was unter "Known limitations" in der [d]betababel[/d]-Anleitung steht. Auch \newcommand gehört in die Kategory "Other commands". Danach sollte halbwegs klar werden, warum in gr.idx solch ein Salat geschrieben wird:
\indexentry{\def <'\char 116\char 101sv\char 116{}\Bet@Mode =1 \FirstP@r =1 \noindent \begingroup \catcode `\=0 \catcode `\\=12 \catcode `\&=6 \catcode `\#=12 \catcode `\==12 \lccode `(=0\lccode `)=0 \lccode `[=0\lccode `]=0 \lccode `+=0\lccode `/=0 \lccode `\==0\lccode `|=0 \uccode `(=0\uccode `)=0 \uccode `[=0\uccode `]=0 \uccode `+=0\uccode `/=0 \uccode `\==0\uccode `|=0 \lccode `-=0\lccode `_=0 \lccode `.=0\lccode `,=0 \lccode `:=0\lccode `;=0 \lccode `'=0\lccode `?=0 \gdef {}\gdef Terminus{t(/est}Terminus\par \endgroup \gdef {}\foreignlanguage {polutonikogreek}{\catcode `\ \active <'\char 116\char 101sv\char 116}}{1}
bei dem makeindex dann Probleme hat, das zu verarbeiten:
!! Input index error (file = gr.idx, line = 1):
-- Extra `@' at position 59 of first argument.
Eine mögliche Lösung im konkreten Fall wäre
\documentclass[
a4paper
parskip,
]{scrreprt}
\usepackage[polutonikogreek, german]{babel}
\usepackage[german]{betababel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[]{imakeidx}
\makeindex[name=gr,title=Griechischer Index,intoc,columns=2]
\makeindex[name=dt,title=Deutscher Index,intoc,columns=2]
\usepackage[font=footnotesize]{caption}
\newcommand{\test}{\bcode{t(/est}}
\newcommand{\IDXtest}{\index[gr]{\protect\bcode{t(/est}}}% ggf. \protect durch \string ersetzen und ggf. weitere "Befehle" schützen.
\begin{document}
Hier soll \test\IDXtest~stehen
Hier funktioiert es \test\index[gr]{\bcode{t(/eeeest}}
\printindex[gr]
\indexprologue{\small In this index you’ll find only
german words}
\end{document}
Eventuell wäre auch die Verwendung von \detokenize sinnvoll, kann aber (wie \protect) auch zu zusätzlichen Leerzeichen führen.
BTW:
betababel wurde zuletzt vor über zehn Jahren aktualisiert.
babel wird hingegen inzwischen wieder aktiv weiterentwickelt. Das muss nicht zu einem Problem führen, kann aber.