Data memory usage reported by AtmelStudio for ATtiny85
Even if you define your variables as const, the compiler will still put them into the AVR's RAM. Only if you define your variables with the PROGMEM attribute will it keep the variables only in flash and read them from there.

Your array fits right into the RAM, completely filling it. But as you already suspected, running your main or other functions will use part of the RAM for the stack, probably overwriting your LUT. This is called stack collision and can not be predicted by AtmelStudio, as it has no way of knowing which functions you will call and how often.

If you really need all 512 RAM Bytes and don't want to load from flash, you could write the code to drive the DAC from the LUT in assembler code without using a stack.

For illustration 



graphic borrowed from here