Unless I'm totally misunderstanding the context, DarkBASIC as a procedural language refers to programming based on calling procedures.
I'll take a stab at this since I like to read myself write...
DarkBASIC can operate like a procedural programming language. A procedural language basically means the whole program is broken up into "chunks" or groups of ordered operations that are often referred to as functions, methods, procedures, sub-procedures (depends on the language).
BASIC as a programming language in itself is really more sequential in design - each step in the program flow follows the previous all the way to the end. DarkBASIC is a combination of the two.
One can set up a series of user designed functions that contain blocks of code. Functions are declared, and then exist almost as an additional command that temporarily becomes part of DarkBASIC while the program is running. These functions can be called (told to run or execute) from other areas in the DarkBASIC program by referencing their name, so that recurring tasks can be handled without rewriting the code. Functions are usually designed to work on variables and optionally return a value back to whatever area in the program that originally called the function. Functions can also be saved as a library, and then reference by other DarkBASIC programs.
Procedures are similar to functions. What sets them apart is that they can be run without being called - if they are placed in the sequence of the program, they will execute as soon as they are come upon. Also, procedures do not return values in the same way as functions, though they can alter a variable's value. Procedures can also be called from elsewhere in the program with a GOSUB or GOTO and are identified by a label (a name or a number ending with a : -- ex. myprocedure: ). Procedures cannot be saved as a library, but they can exist inside of a function that can be called from a library.
Using this idea in programming DBC:
I'm keeping this brief because going into the details of programming in general can be deep; but one might use a function, per se, to calculate the distance between a player object and an enemy object. The value returned from the function might be used to determine if the enemy is close enough to attack the player. If so, the computer is directed to a procedure that will contain the code for how the enemy behaves in it's attack.
So to summarize, DarkBASIC as a procedural language means you can write blocks of code that can be referenced to perform repeating tasks.
Enjoy your day.