PROGMEM is a magic preprocessor macro that tells the compiler to place the data into flash memory instead of SRAM. The AVR architecture used by the ATMega32u4 MCU (the heart of the keyboard) has two kinds of memory: flash memory and SRAM. Flash memory is read-only, except when flashing the keyboard. SRAM is read-write. The reason we put a lot of things into PROGMEM (short for “program memory”) is because there’s considerably more of that on the MCU: there’s about 28k flash, and only 2k SRAM. So anything that’s read-only, is usually put into flash, to save SRAM for things that do need to be writeable.
In this case, the array is defined inside the setup() function, then a pointer to that array is set which gets used after setup() has returned. If it wasn’t declared static, the memory allocated for that array could be freed and then overwritten, resulting in unpredictable behaviour when the pointer is used.
In this case, however, the memory can’t be overwritten, because it’s read-only program memory, as @algernon already explained. If the compiler doesn’t detect an error, it would probably work just fine without declaring it static, but it would be poor practice to do so.