Isso porque, dentro de [[…]] , os operadores < e > comparação de string.
Ao fazer uma comparação de string, a ordem é dada (basicamente) pelo alfabeto, onde a é antes (menor) que b e menor que c: a < b < c .
Os números são geralmente anteriores a (menores) que as letras: 1 < 2 < a
Portanto, como um a classifica após um 1 abc ser maior que 123 :
$ [[ abc > 123 ]] && echo yes
yes
Ou, como você a apresenta:
$ x=abc y=123
$ [[ $x > $y ]] && echo yes
yes