Because Hugo doesn’t find it for talks/third.md, which has type = "keynote" in its frontmatter.
The other two talks (talks/first.md and talks/second.md) do not specify a type in their frontmatter, and so they correctly use layouts/talks/single.html.
I’ve pushed an example site to GitHub - callahad/test-hugo-sections: Testing how hugo handles sections and custom content types if you’d like to try it locally.