Use get_the_date()
instead, here’s note from the_date()
codex page regarding the issue:
When there are multiple posts on a page published under the SAME DAY,
the_date() only displays the date for the first post (that is, the
first instance of the_date()). To repeat the date for posts published
under the same day, you should use the Template Tag the_time() or
get_the_date() (since 3.0) with a date-specific format string.