Добрый день!
В вашем первом примере вы пытаетесь массив со строками преобразовать в Int и получаете ошибку.
Если использовать .map, то он возвращает массив опциональными значениями. И в таком случае если попадется строка в массиве, которую невозможно будет конвертировать в Int, то в этом месте будет nil.
Если использовать flatMap, то он оставит только те значения, которые удачно преобразовались в Int.
let arr = [["9", "6", "7", "8", "5"], ["1", "1", "1", "1", "1"]]
let mapArr = arr.flatMap { $0.flatMap { Int($0) } }