GnuPG 2.1.14, file sm/keylist.c, line 495 ff. read (my comment added with <<<)
...
/* Field 12, capabilities: */
print_capabilities (cert, fp); <<<<<<<< this already writes a colon
es_putc (':', fp); <<<<<<<<<<<< this colon is excessive
/* Field 13, not used: */
es_putc (':', fp);
if (have_secret || ctrl->with_secret)
...print_capabilities() already writes the colon itself, see line 292.
Hence the '+' marking that a secret key is available is written to column 16
instead of column 15.