Covered index doesn't appear to be optimal. Expecting 0 heap fetches in execution plan

I'm using the pagilia sample database on Postgres 14. I create what I think is the covered index, followed by the query, based on an example for an online course...

CREATE INDEX idx_film_cover ON film (rating, length, title, replacement_cost, rental_rate);

EXPLAIN ANALYSE SELECT title, length, rating, replacement_cost, rental_rate
FROM film
WHERE length BETWEEN 60 AND 70 AND rating = 'G';

...yet I still get a bitmap heap scan...

Bitmap Heap Scan on film as film
Recheck Cond: ((rating = 'G'::mpaa_rating) AND (length >= 60) AND (length <= 70))
  ->  Bitmap Index Scan using idx_film_cover
      Index Cond: ((rating = 'G'::mpaa_rating) AND (length >= 60) AND (length <= 70))

...the online course example has zero heaps. Can someone help me understand why I'm getting a different execution plan?

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum