In my experience, Kanban can even work great if your team is not cross-functional. Scrum with a team that is absolutely not cross-functional will not work. Each sprint people will work on their own things and not really be able to help each other.
I worked with a team where each developer had their own project and programming language. The only thing they had in common was usage of the same API. We used Scrum and went back to Kanban. They were not working on code together, so why do Planning Poker, Refinement and Sprint Planning together?
I also think Kanban is more challenging to do well. If your team is not very mature or experienced with Agile, then it is very easy to have developers each doing their own thing and not working together as a team. Better to start with Scrum and once good Agile practices are established you can go to Kanban. Unless of course priorities shift so much that Scrum does not make sense. Then start with Kanban.
Kanban is very free. Your team needs to be able to handle that lack of prescribed rules. So it does not turn into a free for all do whatever you want kind of thing. Plus planning with Kanban is not as easy as with Scrum. This can be resolved however.