For something like loading a string of text for the NPC to say, then yes, using Lua is definitely overkill. That article does eventually talks about some of the better use cases for why Lua was used, though. Things like NPC movements, handling quest branches, and enemy AI can all be handled in your scripting language.
But you had mentioned,
If you've already coded everything in C++ yourself, then I don't know of any reason you'd want to integrate Lua into your game, unless one of the core mechanics is letting the player write code.
Sure, that's definitely something you can have as part of your game, but the main reason people use scripting languages is because they get interpreted when they are loaded, so there is no compiling going on. That means you can make a quick change, and simply run your game again. There are also systems(Wolfire's Overgrowth engine is such an example) that will actually auto-load and make the changes when it detects a change in the script file.
Of course, this is all fine and dandy, but be aware that there is some overhead when running scripting code since it is interpreted at runtime.
As far as other data goes, like items, character stats, etc., how you load that really depends on what you want to interact with. You can use an XML file, a plain text file, a YAML file, a binary file, and the list goes on. If this is your first RPG, use what ever you are comfortable with!