How to design a table/ unique index where uniqueness is temporal?
I would add a column is_current or something similar that indicates if the movie is a "current" one, then you can create a unique index on only the "current ones"

CREATE UNIQUE INDEX cinema_movie_name_cinema_id_name_idx 
    ON cinema_movie_name(cinema_id, name)
where is_current;


You can have a regular job that sets old movies to is_current = false