The main difference is that in Swing each component is painted(rendered), while in AWT "everything" is inherited from its native peer.
In particular, these AWT native peers allocate native resources. For example java.awt.TextField allocates an actual text-field-like resource* through the native OS while javax.swing.JTextField does not. JTextField simply draws pixels and interprets mouse events to emulate a native** text field.
*probably, depending on how AWT was ported to the native OS
**or other-than-native, depending on which LookAndFeel is in effect