Transaction Code SA38 and SE38 are both use to execute a program. The difference is, SA38 can be used only to execute or run a program. Whereas, SE38 is use to display an ABAP Editor screen where transaction is not limited only to program execution but also to display or modify the program code.
Furthermore, SA38 is more recommended to use by Functional Consultants/Users of the program e.g. FI/CO. This will reduce the risk of mistakenly modification or deletion of the program. Especially if no transaction code created for a program. SA38 can be used also by ABAPers to execute the program.
Here’s a screen shots of the screen of each transaction:
SA38 screen:

SE38 Screen

You may also consider reading these: