on run
set time_in_seconds to 79200 -- this equals 10PM in seconds from midnight
set done to false
repeat until done = true
set get_current_date to get current date
set get_time to time of get_current_date
if get_time = time_in_seconds then
shutdown
set done to true
end if
end repeat
end run
Nice, I haven't tested it (just woke up), but a couple of suggestions.
Testing if the time is exactly the target seconds might mean you miss that 1 second window if something else is hogging the CPU. It is probably better to use an inequality, or test for a range.
"get_date" is possibly redundant as it contains the same as "get_time", why not just "set get_current_time to get current date"? A couple of other things are sort of redundant as well. I don't think you need "on run" at all, but I'm still half asleep. I think you can just exit a loop without needing to test a variable as well.
Actually- I see you used "time of", but I think "time of" doesn't work in System 7.5... with AppleScript 1.1 anyway. I could be wrong.
The variable naming conventions used are PC style

Picky, but on macs, traditionally you'd say "getTime".
Then the Biggie, this runs flat out for the entire day checking as many times as it can using all available CPU time it can get its hands on - I suspect it would impact performance of the computer.
Lastly - has this been tested, because I don't think get_time = time_in_seconds is a valid use of the AppleScript time functions? Because"get_time" doesn't contain the number of seconds into the day in AppleScript 1.1.