El problema está en que prompt devuelve un string (cadena de texto), y las comparaciones con > o < no funcionan correctamente con cadenas. Por eso, aunque introduzcas un número negativo, el programa lo interpreta como texto y no evalúa correctamente la condición.
Para solucionarlo, convierte el valor ingresado a un número utilizando parseInt (número entero), así:
alert("¡Bienvenido al juego de positivo o negativo");
let num = parseInt(prompt("Dame un número, por favor:"));
if (num > 0) {
alert(`El ${num} es positivo`);
} else if (num < 0) {
alert(`El ${num} es negativo`);
} else {
alert('Es cero, intenta con otro número');
}
Con esta corrección, el programa funcionará correctamente, ya que estás comparando números en lugar de cadenas. Y cambia el uso de doble paréntesis en "else if(num<0)" porque aunque no genera un error en el programa, pero es innecesario y puede causar confusión, así para tener las costumbres de tener buenas practica.