As variáveis da shell só são resolvidas entre aspas duplas (").
sed "s/$WORKDIR/$ARCHIVE/ig" test.dat > abc
(aspas duplas)
Funcionaria se não fosse pelas barras. Sed pode usar qualquer caractere para delimitar esses campos de entrada e a barra talvez não seja a melhor escolha, pois é usada em caminhos de diretórios. Por exemplo, você pode usar isso:
sed "s#$WORKDIR#$ARCHIVE#ig" test.dat > abc