./script executará o arquivo script localizado no diretório atual . como um novo processo.
. script chama a função de shell . (que é um alias para source ) com o argumento script . Isso é praticamente o mesmo que inserir todas as linhas contidas no shell atual.
Você não pode definir variáveis usando a primeira opção, pois as variáveis são definidas apenas para o novo processo. As variáveis só são exportadas de pai para filho e não o contrário. (ou seja, um processo chamado não pode modificar variáveis no processo atual.)