Charles Leclerc was frustrated with his race despite a brilliant recovery to finish fifth at the Canadian Grand Prix.