porque se usar IList e não List ?
IList<Produto> produtos = context.Produtos.ToList();
List<Produto> produtos = context.Produtos.ToList();
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
porque se usar IList e não List ?
IList<Produto> produtos = context.Produtos.ToList();
List<Produto> produtos = context.Produtos.ToList();
Fala, Cesar, a idéia é seguir um princípio importante da orientação a objetos que é programar voltado para interfaces, que aumenta qualidade do seu código a partir do desacoplamento de implementações específicas (como por exemplo a que você sugeriu, List). Concordo que esse exemplo não vai ajudar a entender isso, mas já é minha força do hábito.
Se quiser maiores detalhes, sugiro voltar ao curso C# parte 2, onde são abordados esses e outros conceitos de Orientação a Objetos.