index.js is the traditional and actual entry point for all node apps. Here in React it just has code of what to render and where to render.
App.js on the other hand has the root component of the react app because every view and component are handled with hierarchy in React, where <App /> is the top most component in the hierarchy. This gives you the feel that you maintain hierarchy in your code starting from App.js.
Other than that, you can have the App logic in the index.js file itself. But it’s something related to conventions followed by the community using the library or framework. It always feels good to go along the community.