Boa tarde, Bruno!
Como vai?
O seu código só há um problema: você não está utilizando as funções de conversão de texto para número (parseInt() para números inteiros e parseFloat() para números decimais).
Então, quando você faz a soma ele está concatenando os textos atribuídos as variáveis valor1 e valor2 .
Por isso, quando abri seu script no navegador, eu digitei 2 e depois 3 e ele retorno que a soma de 2 e 3 era 23.
Para que as variáveis recebam números e não texto, você deve usar:
<meta charset="utf-8">
<script>
var valor1 = parseInt(prompt("Digite o valor 1"));
var valor2 = parseInt(prompt("Digite o valor 2"));
var soma = valor1 + valor2
document.write("A soma entre " + valor1 + " e " + valor2 + " é de: " + soma);
</script>
OU
<meta charset="utf-8">
<script>
var valor1 = parseFloat(prompt("Digite o valor 1"));
var valor2 = parseFloat(prompt("Digite o valor 2"));
var soma = valor1 + valor2
document.write("A soma entre " + valor1 + " e " + valor2 + " é de: " + soma);
</script>
Observa-se que apresentei dois códigos. Um utilizando a função parseInt() e outro utilizando a função parseFloat().
O uso dessas funções dependerá do que você está atribuindo a variável.
Exemplos de quando usar:
parseInt() -> idade, dias, número de vitórias (tudo o que for representado por um número inteiro)
parseFloat() -> peso, altura (tudo o que for representado por um número decimal)
Se sua dúvida for respondida com esse comentário, peço que marque minha resposta como "✓ Marcar Solução".
Qualquer dúvida estou à disposição.
Abraços e bons estudos!