A diferença entre os dois é o protocolo usado para se comunicar com o backend.
fastcgi_cache está relacionado ao protocolo de backend FastCGI. Ele armazena em cache a saída dos back-ends conectados do FastCGI.
proxy_cache está relacionado a back-ends que usam HTTP como o protocolo backend e armazena em cache a saída de back-ends conectados HTTP.