è compreso. Stai confrontando datetime con date. La seconda data viene interpretata come mezzanotte quando inizia il giorno .
Un modo per risolvere questo problema è:
SELECT *
FROM Cases
WHERE cast(created_at as date) BETWEEN '2013-05-01' AND '2013-05-01'
Un altro modo per risolverlo è con confronti binari espliciti
SELECT *
FROM Cases
WHERE created_at >= '2013-05-01' AND created_at < '2013-05-02'
Aaron Bertrand ha un lungo post sul blog sulle date (qui), in cui discute di questo e di altri problemi relativi alle date.