Почему для обработки массива через map(), компонент должен принимать параметр как объект?
Потому что компонент принимает все пропсы в 1 единственный аргумент - объект props, который уже содержит Ваш массив в поле array
Фигурные скобки - это деструктуризация объекта, то есть Вы извлекаете поле объекта в одноименную переменную, по сути, этоconst Second = ({array}) => {
    return (...)
}аналогично этому:const Second = (props) => {
    const {array} = props;
    return (...)
}что в свою очередь можно привести к этому:const Second = (props) => {
    const array = props.array;
    return (...)
}но с той лишь разницей, что в оригинальном примере нет отдельной переменной props
Плохо документацию читаешь, у функционального компонента входящий параметр - пропсы
https://uk.reactjs.org/docs/components-and-props.html
https://learn.javascript.ru/destructuring
Твоя последняя запись аналогична такойconst Second = (props) => {
   const array = props.array;
    return (...)
}
или такойconst Second = (props) => {
   const {array} = props;
    return (...)
}