Here is how I remember the differences:
The FLEX player:
Must ALWAYS play the field. Removing the FLEX player from the field is a substitution.
Can ONLY bat if she bats in the DP position. Since they are already in the game, they can not hit for any other player who is already in the batting order. If the FLEX bats, it is a substitution - the DP is now out of the game, and the lineup card now technically contains only 9 players.
The DP:
Must ALWAYS bat in their assigned position in the order.
Can play the field for any position EXCEPT the FLEX player (If the DP is fielding, and the FLEX player is on the bench, this is a substitution.)
SUBSTITUTING IN THE DP/FLEX ROLE:
Any player not in the game can be substituted into the DP position or the FLEX position. The lineup card does not change (the DP/FLEX card is still intact).
If the DP fields for the FLEX, or if the FLEX bats for the DP, it is a substitution and the lineup card technically is now reduced to 9 players. The lineup can be restored to the DP/FLEX configuration by announcing a re-entry, since the player who left has one re-entry left.
If the same DP/FLEX substitution happens a second time, then the player who left is out of the game, and the lineup is now permanently locked at 9 players.