A resposta pode ser encontrada em man awk :
A numeric expression is converted to string by replacing expr with
sprintf(CONVFMT, expr), unless expr can be represented on the host machine as an exact integer then it is converted tosprintf("%d", expr).
Sprintf() is an AWK built-in that duplicates the functionality ofsprintf(3), and CONVFMT is a built-in variable used for internal conversion from number to string and initialized to"%.6g".
Portanto, enquanto você chama a função gsub , que opera com a string awk , converte o campo por sprintf("%d", 1.300E+11) em 130000000000 , mas não existe tal texto na linha, então nada substitui.