sterretje has the right idea: early on in setup() is this line:
// Wait for Console port to connect
This line waits here until a connection is made to the Console object, in other words, until a serial monitor is opened. The sketch is indeed starting up as soon as power is applied, but is spinning here doing nothing until that connection is made.
This line looks very cryptic, so it's interesting to break it apart to see what's happening. This is a while loop all in one line. Console is an object, which has a custom function defined to convert it to a Boolean: it converts to true if a connection has been made, or false if no connection. The "!Console" part of the line makes this determination and inverts it: it's true as long as there is no connection. The while loop will spin as long as this is true - as long as there is no connection. Because there is a semicolon right after it, this is a null loop that does nothing but keep checking whether there is a connection. As soon as there is a connection, the conversion of Console to a Boolean returns true, the "!" negates that to false, and the while loop drops out - the rest of the sketch now runs.
I said the sketch will start as soon as power is applied - this is true, but the Bridge.begin() call needs to establish a connection with the Linux side of the Yun, and it takes about a minute for Linux to boot up. So, in reality, while the sketch is running as soon as power is applied, it will take a minute to get past the Bridge.begin() call.