Ola.
O erro de sintaxe aí vem de dois problemas diferentes no código, um de SQL e outro de Python. Vou separar porque isso ajuda bastante a entender.
Primeiro, o erro de SQL.
No JOIN, você escreveu:
FROM competicoes
JOIN jogadores
ON competicoes.jogador_id
O ON não pode ficar sozinho. Ele precisa de uma condição completa, comparando colunas das duas tabelas. Algo assim:
ON competicoes.jogador_id = jogadores.id
Ou seja, você precisa dizer com qual coluna da tabela jogadores o jogador_id se relaciona. Sem isso, o SQLite acusa erro de sintaxe mesmo.
O SQL correto ficaria, por exemplo:
SELECT jogadores.nome, competicoes.nome_competicao
FROM competicoes
JOIN jogadores
ON competicoes.jogador_id = jogadores.id
Segundo problema: indentação no Python.
No trecho final, o print(jogador) não está indentado:
for jogador in jogadores:
print(jogador)
Em Python isso gera erro, porque tudo que está dentro do for precisa ficar indentado. O correto é:
for jogador in jogadores:
print(jogador)
Corrigindo os dois pontos, o código passa a rodar normalmente.