Puedes hacerlo con un sindicato
(SELECT
site,date,score
FROM
`table`
WHERE
site = 'a'
ORDER BY date DESC
LIMIT 0,1)
UNION
(SELECT
site,date,score
FROM
`table`
WHERE
site = 'b'
ORDER BY date DESC
LIMIT 0,1)
Un poco más complicado si no quieres escribir un UNION
SELECT
t.site, t.date, t.score
FROM
`table` t
JOIN (
SELECT ti.site,MAX(ti.date) AS dt
FROM `table` ti
GROUP BY ti.site
) t2 ON t2.site = t.site and t2.dt = t.date