Como resolver?

O ponto chave aqui é encontrar uma forma de descobrir os elementos que faltam. Um dos caminhos para conseguir isso é ordenando o array e verificando um por um para descobrir os que não estão lá.

Resolução

Começamos então por ordenar o array com o método .sort(). Já vimos como ele funciona, apenas precisamos subtrair o segundo elemento do primeiro, caso o resultado seja positivo o primeiro elemento é maior e fica a frente, caso seja negativo, ele é menor e fica atrás. Mas antes de usar o .sort(), que modifica o array, podemos utilizar o .slice(0) para criar uma cópia desse array, para não modificarmos o array original. Como o problema nos informa que o último número nunca estará faltando, podemos obter o tamanho correto do array final convertendo o último elemento do array ordenado para número. Isso irá nos permitir criar um array que é exatamente como o array deveria ser, sem faltar nenhum número.

function missingPrisoners(prisoners) {  const sorted = prisoners.slice(0).sort((a, b) => a - b)
  const total = Number(sorted[sorted.length - 1])
  const allPrisoners = []

  for (let i = 0; i < total; i++) {
    const prisoner = i + 1
    allPrisoners.push(prisoner.toString().padStart(4, '0'))
  }
}

De posse desse array de todos os prisioneiros, tudo que precisamos fazer agora é criar um array de prisioneiros que estão faltando e incluir nele todos os prisioneiros que não estão na lista original, mas estão na lista completa. Isso é possível através da negação do .includes() em cada elemento da lista completa. Por fim, basta retornamos a lista final dos prisioneiros que faltam.

function missingPrisoners(prisoners) {
  const sorted = prisoners.slice(0).sort((a, b) => a - b)
  const total = Number(sorted[sorted.length - 1])
  const allPrisoners = []

  for (let i = 0; i < total; i++) {
    const prisoner = i + 1
    allPrisoners.push(prisoner.toString().padStart(4, '0'))
  }

  const missing = []

  allPrisoners.forEach(prisoner => {
    if (!sorted.includes(prisoner)) {
      missing.push(prisoner)
    }
  })

  return missing
}