Eu não acredito que você possa aninhar comandos com expansões de chaves. Parece que só tem a capacidade de conter literais. Você deve ser capaz de utilizar eval
para conseguir o que deseja.
Exemplo
$ a=1
$ b=5
$ echo {$a..$b}
{1..5}
Se você eval
o echo
:
$ eval echo {$a..$b}
1 2 3 4 5
Seu exemplo
$ ls -l tab_yeast
total 0
-rw-rw-r--. 1 saml saml 0 Feb 21 05:40 0000-00-00c.1.tab.gz
-rw-rw-r--. 1 saml saml 0 Feb 21 05:40 0000-00-00d.1.tab.gz
-rw-rw-r--. 1 saml saml 0 Feb 21 05:40 0000-00-00e.1.tab.gz
-rw-rw-r--. 1 saml saml 0 Feb 21 05:40 S1_1000.1.tab.gz
mostra expandido
$ eval echo tab_yeast/{'echo $rep | cut -f2- -d',''}*.tab.gz
tab_yeast/0000-00-00c.1.tab.gz tab_yeast/0000-00-00d.1.tab.gz tab_yeast/0000-00-00e.1.tab.gz
seu comando modificado
$ ls -1 $(eval echo tab_yeast/{'echo $rep | cut -f2- -d',''}*.tab.gz)
tab_yeast/0000-00-00c.1.tab.gz
tab_yeast/0000-00-00d.1.tab.gz
tab_yeast/0000-00-00e.1.tab.gz