RetroArch’s input is based on the idea of a virtual gamepad that we call “the retropad”. In settings > input > user 1 binds, you can map the retropad’s buttons to your physical pad.
As part of the process of porting a core to libretro, the author chooses a default mapping for the core’s functions on the retropad. We usually try to match the physical layout of the original pad, but that’s not always possible (see: oddball gamepad layouts, like Sega Genesis/MD and N64). These default mappings will usually be fine and “sane”.
Not everyone likes the default mapping, though, so that’s where quick menu > controls comes in. There, you can move the core’s functions around on the retropad, such as Sivarticus’ example about moving the NES shoot/jump commands to Y and B instead of B and A, respectively. To make this process easier, we display the physical gamepad’s buttons in the left column when possible (that is, when the gamepad is recognized and autoconfigured).
If your gamepad is recognized and autoconfigured, you probably don’t need to go into settings > input > user 1 binds unless you really know what you’re doing. This is a mistake many people make that gets them in the weeds unnecessarily.