My suspicion:

He/she is performing all this on the workstation, not on the server where database is running. So select from dual shows a date of the host runing the database, while !date shows the date of the client machine.