Postgres' query planner is likely considering random vs sequential page costs, and preferring an index scan on created_at.
What are the current values of `random_page_cost` and `seq_page_cost`?
SHOW seq_page_cost;
SHOW random_page_cost;
The default is typically 4, and in practice with modern disks you should use a lower value closer to 1.