Il tuo SQL è corretto per quello che vuoi fare. Slick probabilmente sta producendo una query come questa:
SELECT device.*, COUNT(device.id)
-----------------------^
FROM device LEFT JOIN
unit
ON device.id = unit.device_id
GROUP BY device.id;
Forse c'è un modo per farlo contare device_id
, che è inequivocabilmente da unit
.