Olá Jackson, tudo bem com você?
Isso vai depender muito das ferramentas que estamos utilizando, dentro do mundo do javascript também temos a programação dentro do HTML, a questão é que como o Java, isso está mais do lado do servidor, inclusive no curso de NodeJS utilizamos essa abordagem de passar dados para o HTML e programar dentro dele a visualização dos dados.
Quando estamos criando um site utilizando o javascript padrão ou algum framework (React, Vue) que está separado do backend ai não temos nem a possibilidade de fazer esse tipo de programação, e as funções acabam se tornando uma maneira melhor de gerar a visualização de nosso dados.
Mas de fato não é uma má prática e você verá em vários projetos de diversas linguagens (Java, PHP, Javascript) ambas as abordagens, a programação direta no HTML quanto o frontend separado do servidor e fazendo requisições para obter os dados e renderizar na página :)
Abraços e Bons Estudos!