Nope, you're not a dumb dumb.
Javascript is an interpreted language, not a compiled one. Similar to the Java Virtual Machine, there's an interpreter on your machine called "NodeJS". If you have a javascript file and call `node index.js`, NodeJS will interpret and run it.
So, basically `npm start` is a command that, behind the scene, calls something similar to `node index.js` that interprets/runs Beaker-Browser code. Now the question: If Javascript can be interpreted, why build at all (`npm run rebuild`)?
I'm not entirely sure of the reason in this particular case (Beaker Browser's code), but probably the main reason is that Beaker has built-in webpages and these webpages usually use many Javascript files. Instead of retrieving them one by one, it's more performant to have a build step that merges them (see: browserify) into one file to be served in one request. So, that's the purpose of `npm run rebuild`.
Now, for your expectation to have one executable file that has everything, this step is usually called "package" and probably in this code is called "release". Not sure, but if you run `npm run release` I expect you to find something similar to your expectations.
So, anyway, the short version: Just run `npm start` and you'll have Beaker Browser running. Probably, run `npm release` and you'll find what you want. And to better understand this whole thing, you'll need to be familiar with NodeJS and, for built-in webpages/the `npm run rebuild`, ElectronJS & browserify.