Não sou profissional em javascript, inclusive faz algum tempo que não estudo essa linguagem, mas fiquei curioso com a pergunta então fui pesquisar.
Bem segundo ao google translate a palavra wrapper significar embrulho, então em várias linguagens, quando falamos wrapper estamos falando de um objeto (instância de uma classe) que recebe um tipo mais simples no construtor ('função' executada ao instânciar uma classe) e oferece várias funções que facilitam a manipulação daquele tipo mais simples.
No javascript nós temos os tipos number, string e boolean esses três são tipos primitivos que não deveriam oferecer funções para facilitar sua manipulação já que são tipos primitivos, mas desta forma programar em javascript seria muito mais chato, então os desenvolvedores de javascript tiveram a ideia de fazer o seguinte.
Toda vez que você declara uma variável simples, como no exemplo:
let nome = "Vinicius"
E precisar fazer, por exemplo:
str = nome.substring(4)
Basicamente por de baixo dos panos o que te permite usar a função substring é o javascript fazer a seguinte coisa por debaixo dos panos:
let temp = new String(nome);
let str = temp.substring(4)
temp = null
Nesse caso o wrapper é a classe String que embrulha várias funções para ajudar a manipular strings.
E cada tipo primitivo tem um wrapper equivalente porque também existe as classes Number e Boolean que assim como String são equivalentes a seus repectivos tipos primitivos