One foreign key for two columns
The query results are correct, as your query finds all teams and results where a team played against itself (home_team = away_team). 

You probably want to use 2 joins to teams in you query:

SELECT 
    home.team_name AS home_team_name, 
    away.team_name AS away_team_name, 
    r.score 
FROM 
    results AS r
  JOIN teams AS home 
    ON r.home_team = home.team_id
  JOIN teams AS away 
    ON r.away_team = away.team_id ;