Difference between iTunes Connect App Version and Build Version
It may be necessary to submit multiple builds when submitting or updating an app (due to finding bugs before the app completes review, etc.).  iTC requires that the build numbers be different (and ascending) for each subsequent build submission for same version update to an app.  Thus two different fields, one version number for the App store visible (e.g. marketing) version of the app or app update, and one build number for one or more uploads before app review starts or completes (and without changing the App store visible or marketing version number).

It's also handy when testing many dozens of incremental builds of an app on your devices and iOS Simulators to have some way of telling them apart other than mucking with the marketing version number (which you might want to be a nice clean looking 2.0 or something).