There are plenty of differences between the two. Selenium uses WebDriver API and sends commands to browser driver to perform actions (through the "JSON wire protocol"). However,
Java AWT Robot uses native system events to control keyboard and mouse operations. If your aim is, browser automation, then technically you don't need to use Robot framework because the functionality provided by Selenium Actions() is more than enough. But ofcourse, there are cases when browser or native OS popup comes up like uploading/ downloading a file. This can be also be solved using Robot frameowrk- though generally there are selenium-specific solutions/workarounds that can help avoiding using Robot. The key idea of these workarounds is "since we cannot control the popups, just don't let them open".
For instance, while downloading a file in Firefox, you will get a popup asking you to choose a location and filename where it should get saved. This kinda situation cannot be manipulated using selenium. But, however what you can do, is let Firefox know for certain file types, where to save the downloads automatically, without handling the popup.