Dot não é um caractere válido em um nome de variável. O manual do bash diz ( aqui )
name
A word consisting solely of letters, numbers, and underscores, and beginning with a letter or underscore. Names are used as shell variable and function names. Also referred to as an identifier.
No entanto, minha página man do ksh93 diz:
Definitions.
[...] An identifier is a sequence of letters, digits, or underscores start‐ ing with a letter or underscore. Identifiers are used as components of variable names. A vname is a sequence of one or more identifiers separated by a . and optionally preceded by a .. Vnames are used as function and variable names.
Esta parte parece mais relevante para o seu problema (ênfase minha):
Parameter Expansion.
[...] A variable is denoted by a vname. To create a variable whose vname contains a ., a variable whose vname consists of everything before the last . must already exist.
Esse recurso existe apenas no ksh93, não no bash. Se o seu script faz uso dele, você precisa executá-lo em ksh93.