Show dialog at login (bash script) The idea is that when somebody logs in to my Mac, a popup will show up and the date/time are written to a log.

I run the bash script from a cron job:

 @reboot ~/Develop/login.sh 


(I know about launchd but choose to use cron, much easier)

the login.sh script:

#!/bin/bash
osascript &lt;&lt;EOD
  tell application "System Events"
  activate
  display dialog "Unauthorized Login" buttons {"OK"} default button 1 with icon caution with title "WARNING!"
  end tell
EOD

echo "$(date) LogIn Alert" &gt;&gt; ~/Develop/login.log


I can execute the script with ./login.sh. All working well, the dialog is shown and login time is written to the log.

But when restarting my Mac the login date/time is written to the file (so the cron job is working), but the dialog is not popping up.

(I did look at the question Run AppleScript from bash script)

So my question is how to show this dialog when rebooting my Mac?
(macOS 10.12.3)
You shouldn't need System Events just to display a dialog, nor can you strictly speaking 'activate' it...
try just 

#!/bin/bash
osascript &lt;&lt;EOD
  tell me to display dialog "Unauthorized Login" buttons {"OK"} default button 1 with icon caution with title "WARNING!"
EOD

echo "$(date) LogIn Alert" &gt;&gt; ~/Develop/login.log


I can't really test it as I'm totally clueless on cron/bash/osascript itself, but that would be all you'd need for a regular Applescript to display a dialog.

If that doesn't work, then the next step would be to set it up in Automator, as an Application, then set to launch at login.