Hello Davi
i'm assuming that your Ticket.Id is unique
You can get your unfinished tickets together with report Created property in a group collection of anonymous type:
var groupItems = dbContext.ReportedTimeEntries
.Where(r => r.ReporterId == 31)
.Select(r=> new {ticket = dbContext.TicketEntries.FirstOrDefault(t => t.Id == r.TicketId && t.IsFinished == false), created = r.Created})
.OrderByDescending(e => e.created)
.GroupBy(x => x.ticket.Id);
// groupItems are IEnumerable<IGrouping<int,object>>
then you just take top item from each group, and order by date again
var items = groupitems
.Select(g => g.FirstOrDefault())
.OrderByDescending(x=>x.created)
.Take(3);
You can combine expressions in one.