A resposta curta e simples é:
Em geral, para implementar flash de dados, você precisa de menos transistores do que para implementar DRAM (memória principal).
A DRAM, por sua vez, leva menos transistores para implementar do que a SRAM (memória cache). Mais transistores ocupam mais espaço (em geral) e são, portanto, mais caros.
Outra diferença entre RAM e flash é que a RAM não pode tolerar bits defeituosos e flash. Um dispositivo flash normalmente contém mais memória internamente do que o necessário e o controlador on-board oculta as seções que contêm bits defeituosos, de modo que você só consiga ver o flash sem falhas.
Isso significa que os fabricantes precisam descartar RAM que contenha bits defeituosos, mas podem degradar a memória flash para uma capacidade menor. Isso aumenta o rendimento do processo de produção do flash.
Como você já mencionou, a velocidade também é um fator contribuinte. Em geral, memória de alta velocidade requer um design mais complexo e requer mais energia (os dispositivos ficarão mais quentes).
Para mais detalhes, consulte os seguintes livros: