The optimiser will try to use an index that has country_id at the start as this value has been supplied. It then depends on what value is used for rating and how much the result set is whittled down. If rating doesn't shrink the result set by much then the rest of the index is unlikely to be used.
Would dep_date be more restrictive? and if so could it be placed before rating in the index order?
If only selecting 3 rows for each country then would it be a good idea to copy just these rows to a separate table once a day and then pull the data from this new table?
Why do you have "group by region" in the query but then no aggregate functions in the select statement? This seems like an error to me.
You have a load of indexes but are they actually used by anything?