A sintaxe $(( … ))
é uma expressão aritmética .
O que falta é um espaço entre o $(
e o seguinte (
, para evitar a sintaxe da expressão aritmética.
A seção sobre substituição de comandos na especificação da linguagem de comandos shell alerta para isso :
If the command substitution consists of a single subshell, such as:
$( (command) )
a conforming application shall separate the "'$('" and ''('' into two tokens
(that is, separate them with white space). This is required to avoid any
ambiguities with arithmetic expansion.