Executar ./foo.env
significa que você está tentando executar o arquivo como um script de shell. Executar um arquivo como um script de shell significa que o arquivo deve ter permissão executável para sua conta. Executar . ./foo.env
é o equivalente a source ./foo.env
, o que significa que você só precisa ter permissão de leitura no arquivo.