O problema é que o git usa arquivos tmp durante essas operações e os caminhos para os arquivos tmp podem ser caminhos absolutos. Você pode ver quais caminhos estão alterando o cmd do diff para ecoar.
[difftool "kdiff3"]
path = "/mnt/c/Program Files/KDiff3/kdiff3.exe"
cmd = "echo $LOCAL $REMOTE"
A saída será algo como
/tmp/BPI1A2_Layout.js Layout.js
O KDiff3 do Windows pode acessar o Layout.js porque é um caminho relativo. O caminho /tmp/BPI1A2_Layout.js não existe no Windows, pelo que o KDiff3 não consegue encontrar o ficheiro.
Você pode usar o TMPDIR não padrão para comandos git.
TMPDIR=".tmp" git difftool
Agora os caminhos seriam
.tmp/BPI1A2_Layout.js Layout.js
Ambos agora são relativos sob a mesma estrutura de diretórios que o Windows pode acessar e o kdiff funciona conforme o esperado.
Se não há problema em usar o diretório .tmp dentro da pasta do projeto, a solução é criar um alias
alias git="TMPDIR=.tmp git"